如何得到自增id值

如何得到自增id值
如何得到SqlServer的自增ID:

SqlServer中的自增的ID的最后的值:

SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。
SELECT @@IDENTITY   --返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。

一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。


参考的例子如下:

USE pubs
DROP TABLE t6
DROP TABLE t7

GO
CREATE TABLE t6(id int IDENTITY)
CREATE TABLE t7(id int IDENTITY(100,1))
GO
CREATE TRIGGER t6ins ON t6 FOR INSERT
AS
BEGIN
   INSERT t7 DEFAULT VALUES
   SELECT @@IDENTITY as [@@IDENTITY]
   SELECT SCOPE_IDENTITY() as [SCOPE_IDENTITY]
END
GO
--end of trigger definition

SELECT   * FROM t6
--id is empty.

SELECT   * FROM t7
--id is empty.


--Do the following in Session 1
INSERT t6 DEFAULT VALUES
SELECT @@IDENTITY     
/*Returns the value 100, which was inserted by the trigger.*/

SELECT SCOPE_IDENTITY()  
/* Returns the value 1, which was inserted by the
INSERT stmt 2 statements before this query.*/

return
SELECT IDENT_CURRENT('t7')
/* Returns value inserted into t7, i.e. in the trigger.*/

SELECT IDENT_CURRENT('t6')
/* Returns value inserted into t6, which was the INSERT statement 4 stmts before this query.*/

-- Do the following in Session 2
SELECT @@IDENTITY
/* Returns NULL since there has been no INSERT action
so far in this session.*/

SELECT SCOPE_IDENTITY()
/* Returns NULL since there has been no INSERT action
so far in this scope in this session.*/

SELECT IDENT_CURRENT('t7')
/* Returns the last value inserted into t7.*/


总结:
对于马上使用的刚才插入的新记录ID用SCOPE_IDENTITY()是最合适的;
对于想要得到一系列的操作中最后得到的那个自增的ID最好用@@IDENTITY;
对于想要得到一个表中的最后一个插入操作所产生的ID的最好用IDENT_CURRENT('TBName')

 


出处:http://blog.csdn.net/greatplain/archive/2004/11/15/181948.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 3 语法小记(一)入门 (print 函数用法总结)

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/jcjc918/article/details/9354815 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views…

如何查看linux的版本

虽然用过些版本的LINUX系统&#xff0c;但是没有查看过具体的版本是多少来着&#xff0c;下午心血来潮&#xff0c;想查看下自己的版本&#xff0c;到网上收索了下&#xff0c;看到有一大堆命令出来&#xff0c;呵呵&#xff0c;1 最简单的一个uname -a2 cat /etc/issue …

JDBC批量Insert深度优化(有事务)

JDBC批量Insert深度优化&#xff08;有事务&#xff09;环境&#xff1a;MySQL 5.1RedHat Linux AS 5JavaSE 1.5DbConnectionBroker 微型数据库连接池测试的方案&#xff1a;执行10万次Insert语句&#xff0c;使用不同方式。A组&#xff1a;静态SQL&#xff0c;自动提交&#x…

计算机专业面试中会问到的问题

今年是2015年&#xff0c;在过去几年中&#xff0c;电面&#xff08;电话面试&#xff09;是筛选程序员职位候选人的最流行的方式。它让雇佣双方很容易互相了解对方&#xff0c;候选人不需要去未来雇主的所在地&#xff0c;面试官也不用做额外的安排。这是我介绍程序员面试问题…

ActiveBpel部署运行BPEL流程实例

本文接收使用ActiveBpel开发&#xff0c;部署和运行BPEL流程实例。本文的例子工程和服务工程请见附件。1. 安装ActiveBpel5.0.2要安装ActiveBpel5.0.2&#xff0c;需要先安装JDK1.5&#xff0c;Tomcat。注意这里是JDK1.5版本的&#xff0c;ActiveBpel5.0.2不支持JDK1.5以上的版…

如何用c语言从txt文件中读取数据

用C语言从txt文件中读取数据&#xff0c;可以使用C标准库文件自带的文件接口函数进行操作。 一、打开文件&#xff1a; FILE *fopen(const char *filename, const char *mode); 因为txt文件为文本文件&#xff0c; 所以打开时选择的mode应为"r"或者"rt"。 …

活动目录实战系列五(更改域名)

在单域环境下且没有什么服务的情况的改域名还行&#xff0c;如果网络环境比较复杂或者有其他服务&#xff0c;不建议更改。以免发生错误。在实验中由于虚拟机坏掉在这里使用了两个&#xff0c;有部分图片对不上&#xff0c;请谅解。 WIN2000域不支持域重命名域重命名并不是在域…

关于C语言中的Bool类型变量的一点看法

C语言中并没有bool类型变量。这是C中新增的系统类型。 要在C语言中使用bool类型&#xff0c;可以使用自定义的方式。 使用整型做bool类型。 typedef int bool; 或 typedef unsigned char bool; 只要是整型&#xff0c;都可以当做bool使用。 使用枚举类型做bool类型。 typedef…

Lotus Notes Domino 监控

SUM服务器监控软件对Lotus可以进行全面监控. 监控方法主要采用SNMP(lnSNMP), 它是Lotus的标准监控方法. SUM用户不需要了任何Lotus MIB的信息, 只要启用lnSNMP服务即可实现对Lotus邮件, 文档, ,数据库,Demino, 线程等的监控. 主要监控内容:邮件: 总数,错误,正在传送等,邮件大小…

C语言中的fopen函数

fopen 函数原型&#xff1a;FILE * fopen(const char * path, const char * mode); 相关函数&#xff1a;open, fclose, fopen_s, _wfopen 返回值&#xff1a;文件顺利打开后&#xff0c;指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL&#xff0c;并把错误代码存…

百度笔试

题目大致是这样的&#xff1a; 第一部分选择题&#xff1a;有几道网络相关的题目&#xff0c;巨简单&#xff0c;比如第一题是TCP、RIP、IP、FTP中哪个协议是传输层的......。有一道linux的chown使用题目。其他的全是数据结构的题目&#xff01;什么链&#xff0c;表&#xff0…

学IT,看教程,看视频,你必须知道的学习网站

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/rl529014/article/details/50570287 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_vie…

MFC消息响应机制及映射机制理解

一&#xff0e;MFC消息响应机制分析 ---- MFC是Windows下程序设计的最流行的一个类库&#xff0c;但是该类库比较庞杂&#xff0c;尤其是它的消息映射机制&#xff0c;更是涉及到很多低层的东西&#xff0c;我们在这里&#xff0c;对它的整个消息映射机制进行了系统的分析&…

KMP算法 Next数组详解(【洛谷3375】KMP字符串匹配 )

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/qq_30974369/article/details/74276186 </div><div id"content_views" class"markdown_views"><!-- flowchart 箭头图标 勿删 --…

“顾问”

关于顾问的定义&#xff0c;有这么一个故事&#xff1a;一个客户花了大价钱启动了一个项目&#xff0c;这个项目主要解决的问题是&#xff1a;“现在几点了&#xff1f;”这时顾问走过来说&#xff1a;“请借你的手表用一下。”然后看了一下说&#xff1a;“现在是下午3点。”然…

转自知乎-我见过最通俗易懂的KMP算法详解

有些算法&#xff0c;适合从它产生的动机&#xff0c;如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么&#xff0c;再搞清楚怎么用&#xff0c;最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一…

Sybase常见问题

1. Sybase数据库日志满碰到这种情况&#xff0c;常会出现能查询数据&#xff0c;但无法更新数据&#xff0c;启动事务等。在代码中跟踪可以发现&#xff0c;连接能够打开&#xff0c;但事务却无法开启。常会提示“Connection to Sybase server has been lost. All active trans…

Redis在Window服务下的安装

Redis 安装1.首先在Windows下下载安装Redis下载地址&#xff1a;https://github.com/MicrosoftArchive/redis/releases根据你电脑系统的实际情况选择32位还是64位&#xff0c;在这里我下载了的是Redis-x64-3.0.500.zip压缩包&#xff0c;压缩后得到解压文件.2.测试运行打开一个…

在一个禁止离婚的国家结婚

爱尔兰是全世界结婚率最低的国家&#xff0c;作为一个信奉天主教的国度&#xff0c;这个国家是禁止离婚的。很多适逢婚龄的男男女女大都选择观望&#xff0c;迟迟不去婚姻登记部门办理手续。所以&#xff0c;在爱尔兰流行不婚和晚婚。但一对中国夫妻在爱尔兰的结婚经历&#xf…

【计算机网络】时延、发送时延、传输时延、处理时延、排队时延、时延带宽积

版权声明&#xff1a;答应我&#xff0c;右上角点个「赞」再走好么&#xff5e;不甚感激&#xff5e;&#xff08;卖萌脸ヾ(^▽^)ノ https://blog.csdn.net/liuchuo/article/details/52893629 </div><link rel"stylesheet" href"https://csdnim…