在SqlTransaction.BeginTransaction()中如果在commit()之前返回Ident_current,应该返回什么值

时间:2017-06-05 19:44:37

标签: c# sql-server stored-procedures ado.net sqltransaction

我正在使用SqlTransaction.BeginTranactionCommit方法。我在BeginTransaction之后和Commit之前调用了存储过程。

并且存储过程返回Ident_Current,它是否返回该表中最后插入的值或0?

谢谢, 布佩希

1 个答案:

答案 0 :(得分:2)

警告:不要(除非您有非常具体和有针对性的理由)使用Ident_Current() - 使用Scope_Identity()。 Ident_Current()将返回由任何会话插入的最后一个标识值,而不仅仅是你的。

Scope_Identity()将包含您想要的值。

https://docs.microsoft.com/en-us/sql/t-sql/functions/scope-identity-transact-sql

返回插入同一范围内的标识列的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内。