我的sql程序是
SET @query='UPDATE '+@tbl+' SET auth_Date='''+@authDate+'''
,authorized_By_ID=@AuthID
,authorized=1 WHERE '+@col+'=@Id;
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.
答案 0 :(得分:5)
您在第二个参数中传递参数定义,然后按声明的顺序传递参数:
EXECUTE sp_executesql @query,
N'@AuthID int, @Id int, @reVal int OUTPUT',
@AuthID, @Id, @reVal OUTPUT;
您还没有将@authDate作为参数传递的原因?特别是因为语境设置导致转换为字符串时,日期时间类型非常容易出错。