我有下一个代码:
C#
Database.ExecuteSqlCommand("sp_myProc")
SQL
procedure sp_myProc
begin try
begin tran
insert....
delete....
commit tran
end try
begin catch
goto error;
end catch
error:
if @@trancount > 0
rollback tran
由于ExecuteSqlCommand
也打开了abmient事务而导致此代码无法正常运行,如果出现错误,则会@@trancount
,回滚包括ExecuteSqlCommand
在内的所有事务。 EF产生错误:
“EXECUTE之后的事务计数表示COMMIT或ROLLBACK TRANSACTION语句缺少“
我的问题#1:我对正确理解当前错误是对的吗?
my
问题#2:如果我将存储过程sp_myProc更改为如下所示:
set xact abort on;
begin tran
insert....
delete....
commit tran
我可以提出什么警告或错误?