zoukankan      html  css  js  c++  java
  • SCOPE_IDENTITY 和 @@IDENTITY的返回值有什么区别

    ----SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。@@IDENTITY是个全局的变量,而 SCOPE_IDENTITY是你当前的插入到数据库的一个变量----
    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

    --运行结果.
    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
    --结果:
    Y_id  Y_name
    ---------------
    100   boathouse
    105   rocks

    110   elevator


    /*创建一个触发器,当向TZ表里面增加数据的时候,自动向TY表里面增加数据*/

    CREATE TRIGGER Ztrig
    ON TZ
    FOR INSERT AS
       BEGIN
       INSERT TY VALUES ('')
       END

    /*调用触发器,级联增加(类似数据库的级联增加)*/

    INSERT TZ VALUES ('Rosalie')

    select * from dbo.TY
    select * from dbo.TZ

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

    SCOPE_IDENTITY

    4

    /*SCOPE_IDENTITY 返回的是添加到 TZ表里面的ID*/


    @@IDENTITY

    115

    /*@@IDENTITY 返回的是(当前会话中的任何表内所生成的最后一个标识值)这个值是触发器插入到TZ表这个作用域的标识.*/



  • 相关阅读:
    ES6——Promise
    ES6——generator-yield
    ES6——generator
    JQuery——关于CDN(内容分发网络)
    关于JSON使用要注意的地方
    第7课
    第6课
    第5课
    第4课
    第3课
  • 原文地址:https://www.cnblogs.com/muer/p/1687528.html
Copyright © 2011-2022 走看看