放弃SCOPE_Identity,使用OUTPUT代替

时间:2021-12-28 05:24:36

最近项目中使用了SCOPE_IDENTITY()来获取新增数据的自动递增ID号.

在运行过程中会不时的发生无法通过SCOPE_IDENTITY()来获取ID号的情况.

尝试着测试又发现不了问题.

今天在官网发现了OUTPUT可以代替使用.

先尝试一个例子:

Create Table dbo.test(

nid int Identity(1,1),

n varchar(20)

)

declare @tmptest Table (

nid int,

n varchar(20)

)

---新增

insert into dbo.test(n)

OUTPUT INSERTED.nid,INSERTED.n into @tmptest

values('你好')

select * from @tmptest

select * from dbo.test

有点触发器的感觉...

对更新和删除操作同理,详细介绍地址为:

http://msdn.microsoft.com/en-us/library/ms177564(v=sql.90).aspx