大家好我有一个存储过程,它检查了一个名为valid的表中是否存在batch_id。如果存在,我想中止该过程的其余部分。我有
If exists(select batch_id
from valid
Where batch_id=@bid)
Raiserror ('file has been extracted already',16,1)
但它不会中止程序的其余部分
答案 0 :(得分:0)
raiserror
不会中止批次,参见Microsoft's documentation。您可能已经获得了这种印象,因为某些客户端可能会取消查询超过某个严重性阈值的错误。
要在出错时退出该过程,请引发错误并返回否定状态。我通常会return -50000 - @@error
确保我在指定的范围内。