亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

SQL SERVER 2000 中的標識值獲取函數

添加時間:2013-2-6 17:26:11  添加: 思海網絡 

IDENTITY(標識)列,也有很多人稱之為自增列,在SQL Server 2000中,標識列通過IDENTITY來定義,下面是與獲取最后插入記錄的標識值有關的函數的一個示例說明

    SQL Server 中,可以使用 SCOPE_IDENTITY()、 @@IDENTITY 、 IDENT_CURRENT() 來取得最后插入記錄的值值,它們的區別在于:
SCOPE_IDENTITY() 返回插入到同一作用域中的 IDENTITY 列內的最后一個 IDENTITY 值。一個作用域就是一個模塊——存儲過程、觸發器、函數或批處理。因此,如果兩個語句處于同一個存儲過程、函數或批處理中,則它們位于相同的作用域中。
@@IDENTITY       返回在當前會話的所有表中生成的最后一個標識值
IDENT_CURRENT()  返回為任何會話和任何作用域中的指定表最后生成的標識值
下面以一個示例來說明它們的區別

-- a) 示例代碼
-- ===========================================
-- 創建測試表
-- ===========================================
USE tempdb
GO

CREATE TABLE t1(id int IDENTITY,col int)
INSERT t1 SELECT 1
UNION ALL SELECT 2
CREATE TABLE t2(id int IDENTITY,col int)
GO

CREATE TRIGGER TR_insert_t2 ON t2
FOR INSERT
AS
    INSERT t1 SELECT 3
GO

-- ===========================================
-- 測試三個函數..1
-- ===========================================
INSERT t2 VALUES(1)
SELECT [SCOPE_IDENTITY()]=SCOPE_IDENTITY(),
    [@@IDENTITY]=@@IDENTITY,
    [IDENT_CURRENT() For t1]=IDENT_CURRENT(N't1'),
    [IDENT_CURRENT() For t2]=IDENT_CURRENT(N't2')

/*--結果
SCOPE_IDENTITY()   @@IDENTITY   IDENT_CURRENT() For t1     IDENT_CURRENT() For t2                  
------------------ ------------ -------------------------- -----------------------
1                  3            3                          1

(所影響的行數為 1 行)
--*/
GO

-- ===========================================
-- 測試三個函數..2
-- ===========================================
INSERT t1 VALUES(10)
SELECT [SCOPE_IDENTITY()]=SCOPE_IDENTITY(),
    [@@IDENTITY]=@@IDENTITY,
    [IDENT_CURRENT() For t1]=IDENT_CURRENT(N't1'),
    [IDENT_CURRENT() For t2]=IDENT_CURRENT(N't2')

/*--結果
SCOPE_IDENTITY()   @@IDENTITY   IDENT_CURRENT() For t1     IDENT_CURRENT() For t2                  
------------------ ------------ -------------------------- -----------------------
4                  4            4                          1

(所影響的行數為 1 行)
--*/
GO

-- ===========================================
-- 測試三個函數..3
-- ** 開啟一個新連接,執行下面的代碼 **
-- ===========================================
SELECT [SCOPE_IDENTITY()]=SCOPE_IDENTITY(),
    [@@IDENTITY]=@@IDENTITY,
    [IDENT_CURRENT() For t1]=IDENT_CURRENT(N't1'),
    [IDENT_CURRENT() For t2]=IDENT_CURRENT(N't2')

/*--結果
SCOPE_IDENTITY()   @@IDENTITY   IDENT_CURRENT() For t1     IDENT_CURRENT() For t2                  
------------------ ------------ -------------------------- -----------------------
NULL               NULL         4                         &n

--===========================================
-- 刪除測試環境
-- ===========================================
DROP TABLE t1,t2

-- b) 代碼結果說明
從上面的代碼可以看到:
IDENT_CURRENT()  始終返回指定表最后插入的標識值
@@IDENTITY       返回當前會話的標識值,無論是否在同一個作用域,在測試1、2中,可以看到它返回的是觸發器中插入記錄的標識值,而在測試3中,因為當前會話無插入記錄,所以返回NULL
SCOPE_IDENTITY() 返回當前會話同一作用域的標識值,所以在測試1、2中,它返回的值不受觸發器的影響,而在測試3中,因為當前會話無插入記錄,所以返回NULL

關鍵字:標識值、SQL SERVER 2000、函數

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站