在 SQL Server 中,我有一个接受日期参数的存储过程。然后将该日期参数传递给另一个存储过程。但是,第二个存储过程参数被命名为第一个参数。然后我需要有 2 个不同的标量变量:
DECLARE @date date, @sql varchar(100);
SET @date = '2012-07-01';
SELECT @sql = ('EXEC pStoredprocedure @date = '''+@date+'''')
我需要@sql
标量来包含此文本,以便存储过程可以调用其他存储过程:
EXEC pStoredprocedure @date = '2012-07-01'
但是,当我在上面运行我的代码时,我得到了这个错误:
Msg 402, Level 16, State 1, Line 4
The data types varchar and date are incompatible in the add operator.
这几乎就像我需要逃避@date
运营商一样。这可以做到吗?
旁注:是的,我正在尝试动态传递一些变量。我理解这样做的危险,但这样做要简单得多......