MSDN 文档对此并不完全清楚。或者也许我读得不够好。
如果我执行插入(可能插入零行),然后是
;SELECT SCOPE_IDENTITY()
然后通过ExecuteScalar()调用命令...
如果插入没有插入任何行,结果会怎样?
如果失败,我想停止,这样我就不会继续将子记录插入到错误或错误的父 ID。
最佳答案
如果没有插入 Identity,SCOPE_IDENTITY() 将返回 null,您可以通过将 SCOPE_IDENTITY() 分配给变量然后检查变量内容来检查指定的条件。
插图
Create Proc SomeInsertToFail(@ID int OUTPUT)
as
Begin
Select @ID = Scope_Identity()
End
Declare @SOMEID int
Exec SomeInsertToFail @SOMEID OUTPUT
Select @SOMEID --This will yield null
关于sql-server - 如果我在插入失败后选择 SCOPE_IDENTITY() 会发生什么(SQL Server 2005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667764/