如何在Azure数据仓库中引发错误时终止sql脚本



我想知道当Azure数据仓库中出现错误时,是否有方法终止SQL进程。

例如:

BEGIN TRY
PRINT 'a';
THROW 60000,'xyz',1
PRINT 'b'
END TRY
BEGIN CATCH
Print 'catched'
END CATCH
Print 'c'
Print 'd'

当前代码的输出为:a,catched,c,d。

所需的输出是一个,catched。此外,我将把try-catch块包装在while循环中,并在其外部打印"c"、"d"。

我试过";"SET NOEXEC OFF";,但不在Azure数据仓库中工作。

编辑:整个逻辑将在存储过程中

有人能帮我吗?

谢谢!

为什么不能在Try块内移动Print 'c' Print 'd'?另一种选择是使用事务块。这将是极端的,但也有这样的选择:https://stackoverflow.com/a/804811/8104777

return添加到catch块以终止执行:

BEGIN TRY
PRINT 'a';
THROW 60000,'xyz',1
PRINT 'b'
END TRY
BEGIN CATCH
Print 'catched' -- Caught.
return
END CATCH
Print 'c'
Print 'd'

最新更新