zoukankan      html  css  js  c++  java
  • [转]IDENT_CURRENT、SCOPE_IDENTITY、@@IDENTITY 差異對照表

    本文转自:http://www.dotblogs.com.tw/hunterpo/archive/2009/09/04/10421.aspx

    IDENT_CURRENT、SCOPE_IDENTITY 和 @@IDENTITY 是類似的系統函數,都會傳回最後插入的識別值,但是各函數定義的範圍 (Scope)工作階段 (Session) 各不同,以下摘自 SQL Server 2005 線上叢書的說明:  

    • IDENT_CURRENT 會傳回在任何工作階段和任何範圍中,產生給特定資料表 (叫用函數時指定) 的最後一個識別值。
    • SCOPE_IDENTITY 會傳回在目前工作階段以及目前範圍中,任何資料表產生的最後一個識別值。
    • @@IDENTITY 會傳回所有範圍的目前工作階段中,任何資料表所產生的最後一個識別值。

    整理成對照表來看應該會比較清楚,順便以後回頭查找的時候可以快速回憶:  

    函數工作階段 (Session)範圍 (Scope)資料表 (table)傳回 NULL 的情況
    IDENT_CURRENT any any specific
    • 發生錯誤,或呼叫者沒有檢視物件的權限。
    • 在空白資料表或沒有識別資料行的資料表上叫用。
    SCOPE_IDENTITY current current any
    • 在範圍內的識別資料行執行任何 INSERT 陳述式之前叫用。
    @@IDENTITY current all any
    • 執行的陳述式並未影響任何含有識別資料行的資料表。

    上面的速查表,條列出這三個系統函數的不同之處,至於更詳細的說明及範例,線上叢書裡寫得很完整,就請大家自行查閱。  


    參考資料:  

  • 相关阅读:
    最小的k个数
    复杂链表的复制
    二叉树中和为某一值的路径
    二叉搜索树的后序遍历序列
    STL之Deque容器
    STL之迭代器
    STL之Vector容器
    STL之string
    STL(标准模板库)基本概念
    文件I/O
  • 原文地址:https://www.cnblogs.com/litsword/p/3272494.html
Copyright © 2011-2022 走看看