首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL Server @@IDENTITY 函數詳解:獲取最後插入行的自增標識列值

     編輯:程式設計綜合問答

含義

@@IDENTITY 返回當前會話、當前作用域內**最後一條** INSERT、SELECT INTO 或大量複製語句產生的**標識列 (IDENTITY)** 值。

典型用法

INSERT INTO Users (Name, Age) VALUES ('Tom', 25);
SELECT @@IDENTITY; -- 返回剛插入行的自增 ID

注意事項

  • 作用域限制:僅限當前連接、當前作用域。觸發器中插入其他表也會改變其值。
  • 替代函數:
    • SCOPE_IDENTITY():僅返回當前作用域 (存儲過程/觸發器/批次) 產生的標識值,**推薦使用**,避免觸發器干擾。
    • IDENT_CURRENT('table_name'):返回指定表最後產生的標識值,不限會話/作用域。
  • 若表無標識列,返回 NULL。

最佳實踐

存儲過程/觸發器中獲取剛插入 ID 時,優先用 SCOPE_IDENTITY()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved