簡體   English   中英

如何從mssql表獲取更新的身份?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM