精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

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

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



    語(yǔ)法


    SCOPE_IDENTITY( )



    返回類(lèi)型


    sql_variant



    注釋


    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY 在功能上相似,因?yàn)樗鼈兌挤祷夭迦氲?IDENTITY 列中的值。



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



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



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



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



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



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



    有關(guān)說(shuō)明,請(qǐng)參見(jiàn)示例。



    示例


    下列示例將創(chuàng)建兩個(gè)表 TZTY,并在 TZ 上創(chuàng)建一個(gè) INSERT 觸發(fā)器。當(dāng)將某行插入表 TZ 中時(shí),觸發(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)文章
    本頁(yè)查看次數(shù):