获取新的SQL记录ID
发布时间:2020-12-12 08:42:24 所属栏目:MsSql教程 来源:网络整理
导读:如何获取自动生成的ID,以便我刚插入的新记录? (使用ASP经典和MSSQL 2005) 解决方法 SELECT SCOPE_IDENTITY() 使用@@ IDENTITY可能会有意想不到的结果,所以要小心如何使用它.将记录插入其他表的触发器将导致@@ IDENTITY值发生变化,其中,SCOPE_IDENTITY()将仅
如何获取自动生成的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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |