动态SQL中“=”附近的语法不正确

时间:2016-02-05 11:02:30

标签: sql-server sql-server-2012

以下是导致错误的查询:

EXECUTE (' UPDATE facetswrk.dbo.ODS_SUBSC_PREM_REPORT ' + ' SET ' + @lcrcolumn_name + ' = ' + @lcrcolumn_total)

2 个答案:

答案 0 :(得分:1)

你的语法没问题,可能你的列名有错误的valye,或者你需要将@lcrcolumn_tot转换为nvarchar。

给我们变量的值,pr自己用流动的语句检查:

declare @lcrcolumn_name nvarchar(50) = 'blabla',
        @lcrcolumn_tot nvarchar(50) = 10
declare @sql nvarchar(4000);

set @sql = ' UPDATE facetswrk.dbo.ODS_SUBSC_PREM_REPORT SET ' + @lcrcolumn_name + ' = ' + @lcrcolumn_tot

print @sql
execute(@sql)

答案 1 :(得分:0)

最好是在执行它之前打印动态sql以了解导致错误的原因,你可能在@lcrcolumn_name和@lcrcolumn_total中有一些数据值可能会产生问题。