![]() |
1
12
简单回答:你不能。 多亏了那些提供了解决方法的人,但是SSM本身似乎不能像Toad for SQL Server那样设置为在出现错误时暂停或停止。 |
![]() |
2
6
ApexSQL脚本以您想要的方式生成批处理脚本。例如:
|
![]() |
3
6
|
![]() |
4
5
您需要将SQL语句包装在 Transaction .
如果begin/end事务中有错误,所有语句都将回滚。 将语句包装在begin/end transaction内部将阻止语句提交到数据库,但不会在此时停止它。您还需要将其包装在try/catch块中,如下所示:
|
![]() |
5
4
哇!那有点垃圾,不是吗?我使用SQL Workbench,它像Toad for SQL Server一样,可以轻松地处理这个问题。但与SQL Server的Toad不同,它是免费的。
|
![]() |
6
3
11年后,SSMS仍然没有这个功能。。。
您可以启用
在t-sql脚本之前。现在,它将在出现错误时停止执行。 |
![]() |
7
2
在这里使用try-catch块会有帮助。出现错误时,将退出重试,在捕获中实现错误处理 |
![]() |
8
2
这里还提到了一些解决办法: SQL Server - stop or break execution of a SQL script 和 SQL Server: How to abort a series of batches in Query Analyzer? (带日志的raiseerror 20,将noexec设置为on,sqlcmd模式:on error exit,等等) |
![]() |
9
0
如果您不能将脚本放入存储过程并使用return语句在出错时退出,那么@Justice提供的解决方案可能是最佳选择。其他所有人都忽略了这一点——即使使用事务或出现错误,也无法从脚本返回。不管怎样,SSMS将只执行下一个操作,即使set xact abort处于启用状态。
|
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 6 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 6 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 6 月前 |