Sql 获取标识列值
可能重复:Sql 获取标识列值,sql,sql-server-2008,stored-procedures,identity,Sql,Sql Server 2008,Stored Procedures,Identity,可能重复: 在SQL Server 2008中,我有一个存储过程,它插入到一个表中,该表包含ID的标识列。我需要将记录的ID返回到我的应用程序中,以便将其用于相关表 如何通过SQL获取生成的ID?使用选择Scope\u Identity()获取ID有多种不同的选项: -那就是我要用的 一个单独的SQL语句 SELECT SCOPE_IDENTITY() 或者 存在这样一种风险:在插入操作和执行SCOPE_IDENTITY()之间,可能会为新记录再次执行存储过程。所以SCOPE_IDEN
在SQL Server 2008中,我有一个存储过程,它插入到一个表中,该表包含ID的标识列。我需要将记录的ID返回到我的应用程序中,以便将其用于相关表
如何通过SQL获取生成的ID?使用
选择Scope\u Identity()
获取ID有多种不同的选项:
- -那就是我要用的
SELECT SCOPE_IDENTITY()
或者
存在这样一种风险:在插入操作和执行SCOPE_IDENTITY()之间,可能会为新记录再次执行存储过程。所以SCOPE_IDENTITY()将告诉increct值。不,您提到的风险不存在。对存储过程的每次调用都将在不同的作用域中。Scope_Identity()将返回与调用的存储过程相对应的正确ID值。@Ahmet Altun:Scope_Identity是获取ID值的唯一安全方法。“范围”位确保
INSERT MyTable (...=
OUTPUT INSERTED.KeyCol
VALUES (...) --Or SELECT ... FROM Another table)