我正在使用SqlTransaction.BeginTranaction
和Commit
方法。我在BeginTransaction
之后和Commit
之前调用了存储过程。
并且存储过程返回Ident_Current
,它是否返回该表中最后插入的值或0?
谢谢, 布佩希
答案 0 :(得分:2)
警告:不要(除非您有非常具体和有针对性的理由)使用Ident_Current() - 使用Scope_Identity()。 Ident_Current()将返回由任何会话插入的最后一个标识值,而不仅仅是你的。
Scope_Identity()将包含您想要的值。
https://docs.microsoft.com/en-us/sql/t-sql/functions/scope-identity-transact-sql
返回插入同一范围内的标识列的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句在同一存储过程,函数或批处理中,则它们在同一范围内。