2015-09-27 60 views
0

我有一個存儲過程生成動態SQL,我在末尾調用EXEC()來執行UPDATE語句。我用它來更新具有不同的字段名稱標識列不同的表,即UserIdProductIdShoppingCartIdUPDATE語句t-sql不知道標識字段名稱

我可以通過參數的只是傳遞標識列的字段名存儲過程,但我想知道是否有一種方法來動態引用更新語句中的標識列。

EX:

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

其中table_identity_field是該特定表中標識列。

回答

7

我可以只通過一個 參數的存儲過程通過標識列的字段名,但我不知道是否有一種方法來 在更新語句動態引用標識列。

可以使用$IDENTITY關鍵字來引用一個表的標識列:

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

完美!謝謝.. –