SQL 返回新增行的自增ID值方法
SQL 返回新增行的自增ID值方法:
1、使用output 语句
insert into Table1 (CreatedDate) output inserted.id values (getdate())
output 从数据修改语句中返回输出,可以看作是“返回结果的DML”
SQL2005之后 Insert,Delete,Update语句 均支持Output语句。
在Output语句中可以引用inserted和deleted。使用方法同触发器类似。
该方法最大弊端就是需要指定主键。output Inserted.要返回的值。
2、使用@@identity
select @@identity
@@identity返回当前会话最后生产的标识列ID
用select @@identity得到上一次插入记录时自动产生的ID
存储过程,代码示例:SET @NewID=@@IDENTITY
区分,SCOPE_IDENTITY() 和 @@IDENTITY
SCOPE_IDENTITY() 返回插入到当前作用域中的值,它是仅限在一个操作范围之内,
@@IDENTITY 不受限于特定的作用域。它总是获取最后一条变更数据的自增字段的值,
insert temp (temp1) values (\'hh\') select SCOPE_IDENTITY() as dd