日期:2014-05-18  浏览次数:20579 次

求高手指点,动态sql语句中,时间函数参数为列名时,该怎么样调用?
求高手指点,动态sql语句中,时间函数参数为列名时,该怎么样调用?
SQL code

(这条语句能正常运行)
update CASE_上传测试 set [缩略图时间] = CONVERT(varchar(256),DATEADD(MINUTE, @tmpDiffSecond ,[缩略图时间]),120) where [文件写路径] = @FileName and [缩略图时间] <> @NewTimer

(这条语句提示列名无效: 列名 '缩略图时间' 无效)
set @ssql = 'update '+@CaseName+' set [缩略图时间] = '+CONVERT(varchar(256),DATEADD(MINUTE, @tmpDiffSecond , 缩略图时间) ,120)+' where [文件写路径] = @tmpF and [缩略图时间] <> @tmpNT'
EXEC sp_executesql @ssql,N'@tmpNT varchar(256), @tmpF varchar(256)', @NewTimer, @FileName



------解决方案--------------------
CONVERT(varchar(256),DATEADD(MINUTE, @tmpDiffSecond , 缩略图时间) ,120)

“缩略图时间”既不是一个变量,也不是某个字段的值(这是一个字符串赋值语句,不涉及到表查询)

检查语句是否有错时,可以采用 print @ssql来检查