@@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');
經驗:根據不同的使用場合,選擇不同的函式。如果在寫儲存過程時,向表中新增了一條資料,需要返回該IDENTITY值,則使用SCOPE_IDENTITY(),因為它和當前會話相關聯,不會返回一個你不需要的值。如果你僅僅想得到某個IDENTITY列的最後一個值,則使用IDENT_CURRENT()最方便。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-794401/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY(zt)IDE
- IDENT_CURRENT、@@IDENTITY 和 SCOPE_IDENTITY 的區別IDE
- @@IDENTITY與SCOPE_IDENTITY()IDE
- SQL @@Identity ,Scope_identity() 作用域SQLIDE
- select SCOPE_IDENTITY()用法IDE
- 在After Insert觸發器中使用INSERT後,影響SCOPE_IDENTITY 問題觸發器IDE
- 標準io和系統io的辨析
- 字串的建立辨析字串
- ABAP關鍵字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析
- 過去分詞的辨析分詞
- ABAP Netweaver 和 ABAP Platform 這兩個名詞的辨析Platform
- angularJS directive中的controller和link function辨析AngularJSControllerFunction
- Struct與Class辨析Struct
- 元件化開發和模組化開發概念辨析元件化
- 深度辨析 Python 的 eval() 與 exec()Python
- MySQL裡null與空值的辨析MySqlNull
- jQuery外掛開發中$.extend和$.fn.extend辨析jQuery
- MyBatis 的在使用上的注意事項及其辨析MyBatis
- toString && valueOf && Symbol.toPrimitive 辨析SymbolMIT
- 有關identity的小技巧IDE
- 重置identity值IDE
- 自增長列和序列的區別(identity與sequence的區別)IDE
- Node.js Event Loop 的三大常見理解誤區和正確概念辨析Node.jsOOP
- Delphi中布林型別辨析 (轉)型別
- asp.net identity UserSecurityStamp 的作用ASP.NETIDE
- 關於identity列的探討IDE
- ASP.NET Identity入門系列教程(一) 初識IdentityASP.NETIDE
- 關於 Java 中 finally 語句塊的深度辨析Java
- asp.net core使用identity+jwt保護你的webapi(一)——identity基礎配置ASP.NETIDEJWTWebAPI
- MySQL索引分類及相關概念辨析MySql索引
- B樹與B+樹區別辨析
- 【CSS】nth-child 與 nth-of-type辨析CSS
- 【C#學習之辨析小總結】C#
- 我理解的Persistent Object Identity in HibernateObjectIDE
- [Wechat]概念辨析:微信的生態平臺/運管平臺
- General->Identity->VersionIDE
- Install Identity management DatabaseIDEDatabase
- .NET8 Identity RegisterIDE