![](/img/trans.png)
[英]I updated the temporary table and it updated the original table MSSQL Server
[英]How can i get updated identies from mssql table?
我試圖通過將更新的行保存在另一個表中來跟蹤它們。 我有這樣的代碼:
"UPDATE Table1 SET [HastaSN] = @HastaSN WHERE Id = @Id; INSERT INTO Changes ([TableName],[Ids]) VALUES ('Table1 ', (SELECT IDENT_CURRENT('[Table1 ]')))"
當我嘗試更新數據庫中的幾行時,總是得到一個表:
TableName Ids
Table1 56697
Table1 56697
Table1 56697
它只是向我顯示表的最后一個ID。 並非每個ID號。 我該如何解決這個問題?
OUTPUT子句應該為您工作。 這是一個使用它的例子。
DROP TABLE IF EXISTS #t;
CREATE TABLE #t
(
ID INT NOT NULL IDENTITY(1,1),
SomeText VARCHAR(100)
);
DROP TABLE IF EXISTS #IDTable;
CREATE TABLE #IDTable (ID INT);
INSERT INTO #t (SomeText)
VALUES ('Hello'),
('World');
UPDATE #t
SET SomeText = 'World!'
OUTPUT Inserted.ID
INTO #IDTable
WHERE ID = 2;
SELECT ID FROM #IDTable;
在您的示例中,它可能看起來像這樣:
UPDATE Table1
SET [HastaSN] = @HastaSN
OUTPUT 'Table1', Inserted.Id
INTO Changes
WHERE Id = @Id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.