UPDATE语句t-sql没有知道身份字段名称

时间:2015-09-27 17:17:51

标签: sql-server sql-server-2008 tsql

我有一个生成动态SQL的存储过程,我在最后调用EXEC()来执行UPDATE语句。我使用它来更新标识列具有不同字段名称的不同表,即UserIdProductIdShoppingCartId等。

我可以通过参数将标识列的字段名称传递给存储过程,但我想知道是否有一种方法可以在更新语句中动态引用标识列。

EX:

UPDATE @TableName 
SET @ColumnName = @ColumnValue 
WHERE table_identity_field = @RowId

其中table_identity_field是该特定表的标识列。

1 个答案:

答案 0 :(得分:7)

  

我可以通过一个传递标识列的字段名称   参考sproc,但我想知道是否有办法   动态引用更新语句中的标识列。

您可以使用$IDENTITY关键字来引用表格的标识列:

UPDATE TableName 
SET ColumnName = @ColumnValue 
WHERE $IDENTITY = @RowId;