是否有一种方法可以立即停止SQL服务器中SQL脚本的执行,如“break”或“exit”命令?
我有一个脚本,它在开始插入之前执行一些验证和查找,我希望它在任何验证或查找失败时停止。
是否有一种方法可以立即停止SQL服务器中SQL脚本的执行,如“break”或“exit”命令?
我有一个脚本,它在开始插入之前执行一些验证和查找,我希望它在任何验证或查找失败时停止。
当前回答
只需使用RETURN(它可以在存储过程内部和外部工作)。
其他回答
这是存储过程吗?如果是这样,我认为你可以只做一个返回,如“返回NULL”;
我不会使用RAISERROR- SQL有IF语句可以用于此目的。执行您的验证和查找并设置局部变量,然后使用IF语句中的变量值使插入具有条件。
您不需要检查每个验证测试的变量结果。你通常可以用一个标志变量来确认所有传递的条件:
declare @valid bit
set @valid = 1
if -- Condition(s)
begin
print 'Condition(s) failed.'
set @valid = 0
end
-- Additional validation with similar structure
-- Final check that validation passed
if @valid = 1
begin
print 'Validation succeeded.'
-- Do work
end
即使您的验证更复杂,您也应该只需要在最终检查中包含几个标志变量。
你可以使用RAISERROR。
只需使用RETURN(它可以在存储过程内部和外部工作)。
这就是我的解决方案:
...
BEGIN
raiserror('Invalid database', 15, 10)
rollback transaction
return
END