--Parameters---
@InstrumentID VARCHAR(MAX),
@ReminderSentDate datetime,
@Return INT OUTPUT
--========================================================================================= ===
AS
BEGIN
BEGIN TRANSACTION
--===============================UPDATE LAST REMINDER SENT=======================================
DECLARE @Reminder VARCHAR(MAX)
SET @Reminder = 'UPDATE InstrumentReminderSent SET ReminderSentDate=@ReminderSentDate WHERE InstrumentID in (' + @InstrumentID + ')'
EXEC(@Reminder)
SET @Return=@@ROWCOUNT
COMMIT TRANSACTION
这是SP如果我执行此项,给出InstrumentID = 7和ReminderSentDate ='2014-02-28'的值,我收到错误为“Msg 137,Level 15,State 2,Line 1 必须声明标量变量“@ReminderSentDate”。“
答案 0 :(得分:0)
看起来像是一个范围问题。您是否尝试在更新语句中创建@ReminderSentDate动态?
SET @Reminder ='UPDATE InstrumentReminderSent SET ReminderSentDate ='+ @ReminderSentDate +'WHERE InstrumentID in('+ @InstrumentID +')'