亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >SCOPE_IDENTITY 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    返回插入到同一作用域中的 IDENTITY 列內(nèi)的最后一個 IDENTITY 值。一個作用域就是一個模塊——存儲過程、觸發(fā)器、函數(shù)或批處理。因此,如果兩個語句處于同一個存儲過程、函數(shù)或批處理中,則它們位于相同的作用域中。



    語法


    SCOPE_IDENTITY( )



    返回類型


    sql_variant



    注釋


    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 在功能上相似,因為它們都返回插入到 IDENTITY 列中的值。



    IDENT_CURRENT 不受作用域和會話的限制,而受限于指定的表。IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。有關(guān)更多信息,請參見 IDENT_CURRENT。



    SCOPE_IDENTITY 和 @@IDENTITY 返回在當(dāng)前會話中的任何表內(nèi)所生成的最后一個標(biāo)識值。但是,SCOPE_IDENTITY 只返回插入到當(dāng)前作用域中的值;@@IDENTITY 不受限于特定的作用域。



    例如,有兩個表 T1 和 T2,在 T1 上定義了一個 INSERT 觸發(fā)器。當(dāng)將某行插入 T1 時,觸發(fā)器被激發(fā),并在 T2 中插入一行。此例說明了兩個作用域:一個是在 T1 上的插入,另一個是作為觸發(fā)器的結(jié)果在 T2 上的插入。



    假設(shè) T1 和 T2 都有 IDENTITY 列,@@IDENTITY 和 SCOPE_IDENTITY 將在 T1 上的 INSERT 語句的最后返回不同的值。



    @@IDENTITY 返回插入到當(dāng)前會話中任何作用域內(nèi)的最后一個 IDENTITY 列值,該值是插入 T2 中的值。



    SCOPE_IDENTITY() 返回插入 T1 中的 IDENTITY 值,該值是發(fā)生在相同作用域中的最后一個 INSERT。如果在作用域中發(fā)生插入語句到標(biāo)識列之前喚醒調(diào)用 SCOPE_IDENTITY() 函數(shù),則該函數(shù)將返回 NULL 值。



    有關(guān)說明,請參見示例。



    示例


    下列示例將創(chuàng)建兩個表 TZTY,并在 TZ 上創(chuàng)建一個 INSERT 觸發(fā)器。當(dāng)將某行插入表 TZ 中時,觸發(fā)器 (Ztrig) 將激發(fā)并在 TY 中插入一行。



    USE tempdb
    GO
    CREATE TABLE TZ (
      Z_id int IDENTITY(1,1)PRIMARY KEY,
      Z_name varchar(20) NOT NULL)

    INSERT TZ
      VALUES ('Lisa')
    INSERT TZ
      VALUES ('Mike')
    INSERT TZ
      VALUES ('Carla')

    SELECT * FROM TZ

    --Result set: This is how table TZ looks
    Z_id   Z_name
    -------------
    1     Lisa
    2     Mike
    3     Carla

    CREATE TABLE TY (
      Y_id int IDENTITY(100,5)PRIMARY KEY,
      Y_name varchar(20) NULL)

    INSERT TY (Y_name)
      VALUES ('boathouse')
    INSERT TY (Y_name)
      VALUES ('rocks')
    INSERT TY (Y_name)
      VALUES ('elevator')

    SELECT * FROM TY
    --Result set: This is how TY looks:
    Y_id Y_name
    ---------------
    100   boathouse
    105   rocks
    110   elevator

    /*Create the trigger that inserts a row in table TY
    when a row is inserted in table TZ*/
    CREATE TRIGGER Ztrig
    ON TZ
    FOR INSERT AS
      BEGIN
      INSERT TY VALUES ('')
      END

    /*FIRE the trigger and find out what identity values you get
    with the @@IDENTITY and SCOPE_IDENTITY functions*/
    INSERT TZ VALUES ('Rosalie')

    SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]
    GO
    SELECT   @@IDENTITY AS [@@IDENTITY]
    GO

    --Here is the result set.
    SCOPE_IDENTITY
    4
    /*SCOPE_IDENTITY returned the last identity value in the same scope, which was the insert on table TZ*/

    @@IDENTITY
    115
    /*@@IDENTITY returned the last identity value inserted to TY by the trigger, which fired due to an earlier insert on TZ*/
    相關(guān)文章
    本頁查看次數(shù):