Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取标识列值_Sql_Sql Server 2008_Stored Procedures_Identity - Fatal编程技术网

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

有多种不同的选项:

  • -那就是我要用的

一个单独的SQL语句

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)