我感到困惑和沮丧,我的同伴中有两个...我有一个存储过程启动一个事务,做了很多事情(包括一些动态SQL语句)但是一旦它到达它下面的声明爆炸了一个例外。但是,如果我硬编码它成功执行的语句。
它也没有进入它自己的try块,它立即轰炸到调用存储过程中的try块,出现以下错误:
EXECUTE之后的事务计数表示不匹配的数量 BEGIN和COMMIT语句。先前的计数= 0,当前计数= 1。
如果我错过了什么,请告诉我......
SET @SQL = N'UPDATE PF205.dbo.SOP30200 SET ECTRX = 4 WHERE SOPNUMBE = @SOPNUMBE AND SOPTYPE = 4'
SET @PARAMDEF = N'@SOPNUMBE CHAR(21)';
BEGIN TRY
EXECUTE sp_executesql @SQL,
@PARAMDEF,
@SOPNUMBE = @SOPNUMBE
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER(),
ERROR_MESSAGE()
END CATCH