2011-02-19 4 views
1

내 SQL 절차는 날짜 시간이 @AuthID 및 @Id 내가 인수를 전달할 수 있습니다 방법)추가 매개 변수

1 int이며 @AuthID입니다 여기에

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 

입니다. 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를 매개 변수로 사용 하시겠습니까? 특히 datetime 유형은 로켈 설정으로 인해 문자열로 변환 될 때 오류가 발생하는 것으로 악명이 높습니다.

마지막으로 use TRY/CATCH blocks instead of @@ERROR checks이어야합니다.

+0

감사합니다. :) – kbvishnu

관련 문제