zoukankan      html  css  js  c++  java
  • SCOPE_IDENTITY、IDENT_CURRENT 、@@IDENTITY

    测试表的Dragon_Cate设计如图:

     

    其中CateID是一个自增量为1的主键。

     

    相应的添加记录的存储过程为:

    CREATE PROCEDURE [dbo].[Dragon_Cate_Add]

    (

        @CateName nvarchar(20),

        @CateIntro nvarchar(50),

        @Depth int,

        @SortOrder int,

        @Path varchar(50),

        @Visible bit

    )

    AS

    BEGIN

        INSERT INTO [Dragon_Cate]

    (

        [CateName],

        [CateIntro],

        [Depth],

        [SortOrder],

        [Path],

        [Visible]

    )

    VALUES

    (

        @CateName,

        @CateIntro,

        @Depth,

        @SortOrder,

        @Path,

        @Visible

    )

        --分别以以下三种类型做测试

        --SELECT Ident_current('Dragon_Cate')

        --SELECT @@IDENTITY

    --SELECT SCOPE_IDENTITY()

    END

    测试结果表明,如果表’Dragon_Cate’没有触发器或其他扩展时候(单单在‘Dragon_Cate’这个作用域中),三种类型返回的值都是一样的。

     

    现在扩大一下作用域, ’Dragon_Cate’增加触发器如下:

    CREATE TRIGGER testTrigger

       ON Dragon_Cate

       AFTER INSERT

    AS

    BEGIN

        SET NOCOUNT ON 

        Insert into Dragon_Notice(NoticeContent,PubDate,Visible,Latest,SortOrder)

        values('abc',getDate(),1,1,1)

    END

    这个触发器在为’Dragon_Cate’表增加一条记录后触发,为表’Dragon_Notice’增加一条记录,这里的表’Dragon_Notice’’Dragon_Cate’的设计是一样的,也有一个自增类型的主键.

    测试结果表明

    SELECT Ident_current('Dragon_Cate')SELECT @@IDENTITY返回的是最后触发器里’Dragon_Notice’表返回的自增变量,

    而SELECT SCOPE_IDENTITY()返回的是’Dragon_Cate’的自增变量.

    得出的结果:

    SELECT Ident_current('Dragon_Cate')SELECT @@IDENTITY返回的应该是当前会话中任何作用域内的最后生成的 IDENTITY 列值,

    SELECT SCOPE_IDENTITY()只能返回当前会话和当前作用域内的最后生成的IDENTITY 列值

  • 相关阅读:
    if __name__ == 'main': 的作用和原理
    第四篇、Python文件处理
    第二篇*2、Python字符串格式化
    第三篇、Python函数
    第二篇*1、Python基本数据类型
    ping包,支持ip录入
    layui之弹出层--从父窗口传递数据到子窗口
    动态调用WebService
    c# 类的反射实例 (GetType().Invoke().GetMethod().CreateInstance())
    ASP.Net UpdatePanel控件 局部刷新 && 弹出提示信息
  • 原文地址:https://www.cnblogs.com/_dragon/p/1732519.html
Copyright © 2011-2022 走看看