获取新的SQL记录ID

前端之家收集整理的这篇文章主要介绍了获取新的SQL记录ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何获取自动生成的ID,以便我刚插入的新记录?
(使用ASP经典和MSsql 2005)

解决方法

SELECT SCOPE_IDENTITY()

使用@@ IDENTITY可能会有意想不到的结果,所以要小心如何使用它.将记录插入其他表的触发器将导致@@ IDENTITY值发生变化,其中,SCOPE_IDENTITY()将仅从当前作用域提供最后一个身份.

以下是一个示例,它将显示@@ IDENTITY和SCOPE_INSERT()之间的区别,以及如何返回不同的值.

use tempdb
go
create table table1
    (ID int identity)
go
create table table2
    (ID int identity(100,1))
go
create trigger temptrig 
    on table1 
    for insert
as
begin

    insert  table2 
     default values;

end
go
insert  table1 
default values;
select  SCOPE_IDENTITY(),@@IDENTITY

没有人在这里讨论的另一个选择是使用sql 2005中的OUTPUT子句.在这种情况下,您只需要将输入子句添加到插入,然后从代码中捕获该记录集.当插入多个记录而不是只有1个时,这很好

use tempdb
go
create table table1
    (ID int identity)
go
insert   table1 
output   inserted.ID
default values;
--OR...
insert   table1 
output   inserted.$identity
default values;

猜你在找的MsSQL相关文章