Tsql 具有多个GO的脚本中的SQL GOTO语句

Tsql 具有多个GO的脚本中的SQL GOTO语句,tsql,goto,raiseerror,Tsql,Goto,Raiseerror,如果某个条件成立,我需要在没有错误的情况下退出SQL脚本。我已经读到了一种解决方案,即使用错误代码20+和日志参数来raiseerror。但限制是,我只能以管理员的身份执行,与数据库的连接将被中止 此外,我尝试使用Goto并跳转到脚本的末尾,但它不起作用,因为在脚本中间有多个GO。还有别的解决办法吗 IF 开始 后藤完成 结束 转到 Finished: 选择“完成” 谢谢 goto无法跳过go。您必须重新测试每个块中的条件: IF NOT <some condition> BEGI

如果某个条件成立,我需要在没有错误的情况下退出SQL脚本。我已经读到了一种解决方案,即使用错误代码20+和日志参数
raiseerror
。但限制是,我只能以管理员的身份执行,与数据库的连接将被中止

此外,我尝试使用Goto并跳转到脚本的末尾,但它不起作用,因为在脚本中间有多个GO。还有别的解决办法吗

IF
开始
后藤完成
结束
转到

Finished:
选择“完成”


谢谢

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

IF NOT <some condition> 
BEGIN
   ...
END
GO
IF NOT <some condition> 
BEGIN
   ...
END
GO
IF NOT <some condition> 
...
如果没有
开始
...
结束
去
如果不是
开始
...
结束
去
如果不是
...

SQL中没有
GOTO
。你可能是指一种特定的方言吗?@Ignacio Vazquez Abrams-t-sql有一个GOTO语句。是的,t-sql。如果我在开始之前声明了标签,那么一切都正常。否则,它会抱怨它是未声明的+1,它要么是this,要么使用
EXEC(@SQL)
来处理这个需要GO的东西,然后您可以使用
GOTO