Raiserror等级16,不会中止程序

时间:2013-04-16 05:49:27

标签: sql tsql procedure raiserror

大家好我有一个存储过程,它检查了一个名为valid的表中是否存在batch_id。如果存在,我想中止该过程的其余部分。我有

If exists(select batch_id 
          from valid
          Where batch_id=@bid)
Raiserror ('file has been extracted already',16,1)

但它不会中止程序的其余部分

1 个答案:

答案 0 :(得分:0)

raiserror不会中止批次,参见Microsoft's documentation。您可能已经获得了这种印象,因为某些客户端可能会取消查询超过某个严重性阈值的错误。

要在出错时退出该过程,请引发错误并返回否定状态。我通常会return -50000 - @@error确保我在指定的范围内。