如果某个条件成立,我需要在没有错误的情况下退出SQL脚本。我读过1个解决方案是 raiseerror 使用错误代码20+和 with log 范围。但是,这样做的限制是,我只能作为管理员执行该执行,并且与DB的连接将被中止。

另外,我尝试使用goto并跳到标题末尾,但是它不起作用,因为我在脚本中间有多个操作。还有另一个解决方案吗?

IF <some condition> BEGIN
GOTO Finished;
END
GO

Finished:
SELECT 'Done'

谢谢!

有帮助吗?

解决方案

goto 无法跳过 go. 。您必须在每个块中重新测试条件:

IF NOT <some condition> 
BEGIN
   ...
END
GO
IF NOT <some condition> 
BEGIN
   ...
END
GO
IF NOT <some condition> 
...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top