获取新的SQL记录ID
发布时间:2020-05-23 11:02:32 所属栏目:MsSql 来源:互联网
导读:如何获取自动生成的ID,以便我刚插入的新记录? (使用ASP经典和MSSQL 2005) SELECT SCOPE_IDENTITY() 使用@@ IDENTITY可能会有意想不到的结果,所以要小心如何使用它.将记录插入其他表的触发器将导致@@ IDENTITY值发生变化,其中,SCOPE_IDENTITY()将仅从当前作用
|
如何获取自动生成的ID,以便我刚插入的新记录?
解决方法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; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- azure – App Insights:禁用SQL依赖关系遥测
- 浅析mysql union和union all
- 数据库设计 – 任意订购表中的记录
- sql – 如何在oracle中的多个select中避免使用相同的子查询
- SQL查询中的MS Access VBA数据类型不匹配错误
- sql-server – 在SQL Server和VB.Net之间使用一致的日期时间
- 请问在mssql“SQL事件探查器”里表格的标题,如CPU,Read,
- sql-server – 在SQL Server 2005中使用数据生成脚本
- Sql Server使用cursor处理重复数据过程详解
- sql – 什么类型的连接是’…其中A.ID = B.ID()’
