如何配置会话以在出现第一个错误时停止执行以下所有命令?

How to configure the session to stop executing all following commands on first error?

提问人: 提问时间:12/19/2022 最后编辑:Thom A 更新时间:12/19/2022 访问量:26

问:

假设我有一个脚本:

alter table ....
go

insert into ...
go

alter table ...
go

delete from ..
go

如何在此脚本的开头配置此会话,以便在四个命令中的任何一个引发任何错误时,跳过脚本中的所有后续命令?

我不想对这些命令本身做任何事情,例如添加“raiseerror”和try/catch等。我想做的就是在脚本的开头添加一些东西,以便“出错时中止”会自动发生。

sql-server sql-server-2005

评论

0赞 Thom A 12/19/2022
真的还在使用 SQL Server 2005 吗?大约 7 年前,它完全失去了支持;就该升级该实例了,现在这样做将非常困难。
1赞 Thom A 12/19/2022
由于这些语句是单独的批处理,因此您已经定义了无论上一个语句的结果如何,都应运行下一个语句。如果你想要这种行为,它们需要在同一批次中。
0赞 12/21/2022
我明白了 - “go”标记批处理的结束,同一批处理中的多个命令应用分号分隔。因此,如果我希望上述四个命令在第一个错误时中止,我将使用分号而不是“go”来分隔它们。我说得对吗?
1赞 Thom A 12/21/2022
正确。您可能还需要打开,但是,我不确定这样一个古老且不受支持的版本是否允许 sytnax。XACT_ABORT

答: 暂无答案