我收到此错误:
关键字'set'附近的语法不正确。
以下是代码段
'Update ' + @TableName +' set status='+str(@status)+ ' where id in (Select Sid from '+@tname+' where SiteId=' + str(@SiteId) + ' and OtId = '+str(@OtId) + ' and (coalesce(VID,'''')='''' OR VID = ''' + @VID +'''))'
答案 0 :(得分:0)
您可能会使用STR()
函数获得前导空格而不指定长度,这会导致错误。例如,select str(1)
会返回1
,其中包含9个填充空格。
可能发生的事情是@status
是> 10.在这种情况下,它将被截断为****
。例如,select str(12345678910)
会返回***
。
所以,不要使用STR()
。使用CAST()
或CONVERT()
。当然这可能不是你唯一的问题,但我怀疑它是基于你提供的。我会阅读这些评论,因为我同意您没有提供足够的信息来调试此代码。密切关注@ Back的评论并在下次使用PRINT(@yourQuery)
指定的长度应大于或等于 小数点前的数字加上数字符号(如果有的话)。一个 short float_expression在指定的长度内右对齐,并且 long float_expression被截断为指定的数量 小数位。例如,STR(12,10)得到12的结果 在结果集中右对齐。但是,STR(1223,2)会截断 结果设置为**。