tSQL sp_executeSQL中的错误156

时间:2016-10-10 12:55:10

标签: sql-server tsql

我有这个SQL语句,无法找到错误

Execute sp_executesql 
N' UPDATE tblFI01_Auftraege  
SET @WerteListe  
WHERE Auftrag_id = @Auftrag_ID'
,N'@WerteListe varchar(max), @Auftrag_ID int' 
,@WerteListe= N'Datum_geaendert = GetDate()', @Auftrag_ID = 12;

错误说:

  

WHERE关键字附近的语法错误   我已经阅读了sp_executesql的说明,但无法找到错误。

任何帮助?

2 个答案:

答案 0 :(得分:0)

在SET子句中,你应该有column = value,在你的情况下,你只有@WerteListe的值,而是你应该有一个来自tblFI01_Auftraege = @WerteListe的列。 TSQL Update syntax

答案 1 :(得分:0)

最好是在变量中形成动态查询,以便在执行

之前检查它
select @WerteListe= N'Datum_geaendert = GetDate()'

select @sql = N' UPDATE tblFI01_Auftraege  
SET ' + @WerteListe + '  
WHERE Auftrag_id = @Auftrag_ID'

print @sql  -- print out for your verification

Execute sp_executesql 
             @sql
           , N'Auftrag_ID int'
           , @Auftrag_ID = 12;