SQLServer中@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的作用 相同點: 它們都返回插入到IDENTITY列中的值。 不同點: A. @@IDENTITY不受作用域(存儲過程、觸發器、函數或批處理)的限制。返回最后一個插入的IDENTITY值。如果在程序中不同的作用域插入的表不同,那么返回最后一個表插入的IDENTITY值。例如:作用域A(存儲過程)在表T1上插入IDENTITY列,而T1上的觸發器會在T2上插入IDENTITY列。則用@@IDENTITY返回T2上插入的IDENTITY值。 B. SCOPE_IDENTITY()受作用域的限制,只返回當前作用域中的最后一個IDENTITY值。上例中,如果在存儲過程中使用SCOPE_IDENTITY(),則返回T1的IDENTITY值。 C. IDENT_CURRENT()不受作用域的限制,調用它時必須提供表示表名的字符型參數,你可以得到你想要的任何表的最后一個IDENTITY值,即使你的代碼里沒有插入動作。例如:IDENT_CURRENT('T1');