2011-02-19 140 views
1

我的SQL程序添加參數動態SQL查詢

SET @query='UPDATE '[email protected]+' SET auth_Date='''[email protected]+''' 
    ,[email protected] 
    ,authorized=1 WHERE '[email protected]+'[email protected]; 
    IF(@@ERROR=0) SET @reVal=1 ELSE SET @reVal=-1' 


    EXECUTE sp_executesql @query, N'@reVal int OUTPUT', 
    @reVal,N'@AuthID int',@AuthID,N'@Id int',@Id 

這裏@AuthID是DATETIME,@AuthID和@Id爲int

1)如何傳遞參數。 2)有錯誤就要 Conversion failed when converting date and/or time from character string.

回答

5

您傳遞的第二個參數參數的定義,其次爲參數,在順序聲明:

EXECUTE sp_executesql @query, 
    N'@AuthID int, @Id int, @reVal int OUTPUT', 
    @AuthID, @Id, @reVal OUTPUT; 

任何理由,你爲什麼不通過@ authDate也作爲參數?特別是由於日期時間類型由於語言環境設置而轉換爲字符串時出現錯誤。

最後,你應該use TRY/CATCH blocks instead of @@ERROR checks

+0

謝謝它的工作。 :) – kbvishnu 2011-02-19 05:45:16