2017年3月13日 星期一

INSERT 後取回最新的 ID

假設有一 [TABLE1],其下欄位為 ID、COLUMN_1 和 COLUMN_2
欄位 ID 設為自動增長

在下了 INSERT 後要取得剛才新增的 ID 時,可以這麼做:
INSERT INTO [TABLE1] (COLUMN_1, COLUMN_2) OUTPUT INSERTED.ID VALUES (DATA1, DATA2)

其中 INSERTED 為 SQL 在建立新資料列時,會暫存的位置,
所以 INSERTED 會找到 [TABLE1] 中的相關資料

同樣的,上述語法也可以用在 UPDATE 上
UPDATE [TABLE1] SET COLUMN_1 = @DATA1, COLUMN_2 = @DATA2 OUTPUT DELETED.ID WHERE ID = 'SomeData'
此時可以取得 UPDATE 是否有影響預期中的資料筆數,可得知是否有更新資料,進而處理下一步(比方:若沒有任何更新表示查詢的資料不存在)
而不需要先查詢有沒有存在,再判斷動作

沒有留言:

張貼留言