UPDATE语句t-sql不知道标识字段名称

问题描述:

我有一个存储过程生成动态SQL,我在末尾调用EXEC()来执行UPDATE语句。我用它来更新具有不同的字段名称标识列不同的表,即UserIdProductIdShoppingCartIdUPDATE语句t-sql不知道标识字段名称

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

EX:

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

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

我可以只通过一个 参数的存储过程通过标识列的字段名,但我不知道是否有一种方法来 在更新语句动态引用标识列。

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

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

完美!谢谢.. –