BEGIN TRANSACTION;
BEGIN TRY
INSERT INTO TABLE1 VALUES('A',3,'E');
INSERT INTO ValueTable VALUES(1);
INSERT INTO ValueTable VALUES(2);
exec MYstoreProcedure
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
throw;
END
END CATCH;
IF @@TRANCOUNT > 0
BEGIN
COMMIT TRANSACTION;
PRINT 'Successfully Completed'
END
3条答案
按热度按时间u1ehiz5o1#
是的,前提是
在交易开始时。
yk9xbfzb2#
你可以使用try catch来执行rollback,如果发生任何错误,否则执行commit。
f87krz0w3#
下面是处理嵌套过程中的SQL Server错误https://stackoverflow.com/a/74479802/6204480的示例