我有一个生成动态SQL的存储过程,我在最后调用EXEC()
来执行UPDATE
语句。我使用它来更新标识列具有不同字段名称的不同表,即UserId
,ProductId
,ShoppingCartId
等。
我可以通过参数将标识列的字段名称传递给存储过程,但我想知道是否有一种方法可以在更新语句中动态引用标识列。
EX:
UPDATE @TableName
SET @ColumnName = @ColumnValue
WHERE table_identity_field = @RowId
其中table_identity_field
是该特定表的标识列。
答案 0 :(得分:7)
我可以通过一个传递标识列的字段名称 参考sproc,但我想知道是否有办法 动态引用更新语句中的标识列。
您可以使用$IDENTITY
关键字来引用表格的标识列:
UPDATE TableName
SET ColumnName = @ColumnValue
WHERE $IDENTITY = @RowId;