使用传递的日期更新提醒表(ManualEntry)

时间:2014-02-28 11:50:17

标签: stored-procedures sql-server-2008-r2 datetime-format

      --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”。“

1 个答案:

答案 0 :(得分:0)

看起来像是一个范围问题。您是否尝试在更新语句中创建@ReminderSentDate动态?

SET @Reminder ='UPDATE InstrumentReminderSent SET ReminderSentDate ='+ @ReminderSentDate +'WHERE InstrumentID in('+ @InstrumentID +')'