是否有一种方法可以立即停止SQL服务器中SQL脚本的执行,如“break”或“exit”命令?
我有一个脚本,它在开始插入之前执行一些验证和查找,我希望它在任何验证或查找失败时停止。
是否有一种方法可以立即停止SQL服务器中SQL脚本的执行,如“break”或“exit”命令?
我有一个脚本,它在开始插入之前执行一些验证和查找,我希望它在任何验证或查找失败时停止。
当前回答
你可以使用RAISERROR。
其他回答
您可以将SQL语句包装在WHILE循环中,并在需要时使用BREAK
WHILE 1 = 1
BEGIN
-- Do work here
-- If you need to stop execution then use a BREAK
BREAK; --Make sure to have this break at the end to prevent infinite loop
END
我在这里一直使用RETURN,在脚本或存储过程中工作
如果您在事务中,请确保您ROLLBACK事务,否则立即RETURN将导致一个开放的未提交事务
将它包含在try catch块中,然后执行将被转移到catch。
BEGIN TRY
PRINT 'This will be printed'
RAISERROR ('Custom Exception', 16, 1);
PRINT 'This will not be printed'
END TRY
BEGIN CATCH
PRINT 'This will be printed 2nd'
END CATCH;
我一直在使用以下脚本,你可以在我的回答中看到更多细节。
RAISERROR ( 'Wrong Server!!!',18,1) WITH NOWAIT RETURN
print 'here'
select [was this executed]='Yes'
这是存储过程吗?如果是这样,我认为你可以只做一个返回,如“返回NULL”;