取得刚刚插入sql server自增长的id值

原创 2004年07月07日 13:57:00
对于SQL Server 2000来说,它提供了两个全新的函数(IDENT_CURRENT,SCOPE_IDENTITY),并且改进了@@IDENTITY的不足.当你插入新记录后,可以调用函数:
    PRINT IDENT_CURRENT('table') '这将获得新的IDENTITY值,不管数据库中是不是有记录添加(这就避免了@@IDENTITY的连接限制)
    或者:PRINT SCOPE_IDENTITY() '这将获得在当前存储过程,触发器等其他程序创建的最新记录的IDENTITY值.
  而全局变量@@IDENTITY有一个问题,当对一张表执行insert时,如果该表有触发器程序在执行插入操作,然后,接着在另一张表中插入记录,这样返回@@IDENTITY值就是第二张表的IDENTITY值。
  如果你用的不是SQL Server 2000,你最好一个简单的存储过程来解决这个问题。
CREATE PROCEDURE myProc
    @param1 INT
AS
BEGIN
    SET NOCOUNT ON
    INSERT INTO someTable
    (
        intField
    )
    VALUES
    (
        @param1
    )
    SET NOCOUNT OFF
    SELECT NEWID = @@IDENTITY
END
在ASP中你可以这样做:
<%
    fakeValue = 5
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open "<conn string>"
    set rs = conn.execute("exec myProc @param1=" & fakeValue)
    response.write "New ID was " & rs(0)
    rs.close: set rs = nothing
    conn.close: set conn = nothing
%>

如何绘制UML活动图

如何绘制UML活动图Scott W. Ambler(本文转载自软件工程专家网www.21cmm.com)  UML 活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。要创建一个 ...
  • gigix
  • gigix
  • 2002-03-13 09:21:00
  • 4022

Sql Server中如何取得刚刚插入的自增长的id值

我们知道,许多表的主键id是自增的,那么我们需要拿到插入过后那个插入的那条记录的id怎么办? 我们先看网上这样一种办法:   测试: 1.新建一个表  TBLINDEDITY   CREAT...
  • woshixuye
  • woshixuye
  • 2011-12-20 22:09:30
  • 2036

SQL server插入数据后,如何获取自增长字段的值?

SQL server插入数据后,如何获取自增长字段的值? 1 2 3 4 5 6 7 8 9 10 11 ...
  • linybo
  • linybo
  • 2015-03-16 19:49:23
  • 1140

SQL Insert into 语句插入后返回新插入的自动增长ID

这里分两种情况, 第一存储过程中插入,插入后使用 SET @FID=@@IDENTITY 这个是一个全局变量,可以返回新插入的自动增长ID,然后在Out put出来就可以了。 第二种,...
  • sumirry
  • sumirry
  • 2015-09-15 13:58:21
  • 6523

SQL SERVER 中通过存储过程获得自增的主键值

解决这样的问题可以有两种方法,笔者在这里归为:预知法和后知法预知法预知法,其实相对简单一些,我们可以设置一个主键,但该主键不设置为自增,因为在插入前,我们自己通过程序的方法获得一个唯一的值作为我们的主...
  • juky_huang
  • juky_huang
  • 2006-07-09 16:32:00
  • 6476

mysql 数据库 如何获取刚刚插入的自增长的id号

在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见的用法。但是在具体生成id的时候,我们的操作顺序一般是:先在...
  • Kindle_code
  • Kindle_code
  • 2016-01-17 14:41:32
  • 1174

关于SQL SERVER中如何操作自增长ID_Identity

想获取插入记录对应的自增列的值,执行下面语句:insert into TableName values(Column_Value) select @@identity; 拓展:SQL Server中...
  • CDL_Darren
  • CDL_Darren
  • 2016-12-12 10:31:53
  • 947

SQL Server自增ID字段值跳跃问题

问题描述   最近在实现对一张表的CRUD操作,所以中间经常会向表中添加、删除数据,以便功能的测试。另外,我们都知道,基本每张数据库的表都会有一个自增的id字段,来唯一标识一行信息。但是,突然有一天...
  • Gnd15732625435
  • Gnd15732625435
  • 2017-09-02 11:33:20
  • 503

获取主键自动增长ID(Oracle/MSSQL/mysql),取得刚插入的ID编号

获取主键自动增长ID(Oracle/MSSQL/mysql),取得刚插入的ID编号 本文和大家讲一下如何使用ibatis来获取刚刚插入数据的ID的方法,也是在网上找到的,挺实...
  • aspnetandjava
  • aspnetandjava
  • 2012-05-17 15:31:51
  • 6175

linq to sql 插入值后,如何取回自增的ID

linq to sql 在插入值的时候还是很方便。有时候我们需要在插入一个新实体之后得到那个实体的主键ID的值,这个ID当然必须是自增。通过观察linq to sql插入之后产生的sql发现,它自动生...
  • qwlovedzm
  • qwlovedzm
  • 2011-08-17 15:49:11
  • 6526
收藏助手
不良信息举报
您举报文章:取得刚刚插入sql server自增长的id值
举报原因:
原因补充:

(最多只允许输入30个字)