0

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

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

但它不会中止其余的程序

4

1 回答 1

0

raiserror不会中止批次,cf。微软的文档。您可能已经获得了这种印象,因为某些客户端可能会取消对超过某个严重性阈值的错误的查询。

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

于 2013-04-17T07:33:49.837 回答