当前位置:首页 > 系统运维 > 正文内容

SQL Server 2000 标识值获取函数的操作步骤

a8116255316年前 (2010-07-16)系统运维11

以下的文章主要是介绍SQL Server 2000 标识值获取函数的正确操作步骤,在实际操作中IDENTITY(标识)列,又称之为自增列,在SQL Server 2000数据库中,标识列通过IDENTITY来定义,下面是与获取最后插入记录的SQL Server 2000 标识值有关的函数的一个示例说明。

SQL Server 中,可以使用 SCOPE_IDENTITY()、 @@IDENTITY 、 IDENT_CURRENT() 来取得最后插入记录的值值,它们的区别在于:

SCOPE_IDENTITY() 返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,假如两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

@@IDENTITY 返回在当前会话的所有表中生成的最后一个SQL Server 2000 标识值

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() 始终返回指定表最后插入的SQL Server 2000 标识值

@@IDENTITY 返回当前会话的标识值,无论是否在同一个作用域,在测试1、2中,可以看到它返回的是触发器中插入记录的标识值,而在测试3中,因为当前会话无插入记录,所以返回NULL

SCOPE_IDENTITY() 返回当前会话同一作用域的SQL Server 2000 标识值,所以在测试1、2中,它返回的值不受触发器的影响,而在测试3中,因为当前会话无插入记录,所以返回NULL。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22014.html

分享给朋友:

“SQL Server 2000 标识值获取函数的操作步骤” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

windows 7系统件夹和文件都不显示名字如何解决

windows 7系统件夹和文件都不显示名字如何解决

假如碰到电脑里的文件夹和文件全都不显示名字了(如下图),是不是电脑中毒了呢 请教下笔者有没好的解决方法!下面是笔者给出的答案,希望能够帮助到大家! 首先打开你用来装图片的文件夹(缩略图下面的文字不显示的文件夹),然后但击工具栏上的“查看”选择“平铺”, 下面就是关键:要按住SHIFT键不...