使用RAISERROR返回大于50000的异常数

本文关键字:异常 50000 大于 RAISERROR 返回 使用 | 更新日期: 2023-09-27 18:07:18

我从SQL Server 2012中的存储过程返回一个异常,如下所示:

DECLARE @errnum nchar(5), @errmsg nvarchar(2048);
SELECT
@errnum = 51000,--RIGHT('00000' + ERROR_NUMBER(), 5),
@errmsg = @errnum + ' ' + ERROR_MESSAGE();
RAISERROR (@errmsg, 16, 1);

SqlException在c#代码中返回,编号为50000,在这里它执行进一步的操作。出于某些业务逻辑原因,我需要返回的数字大于50000。例:我们使用THROW关键字。

THROW 51000,'error',1

我怎么才能做到呢?

使用RAISERROR返回大于50000的异常数

您应该使用sp_addmessage为这个错误号创建一个用户定义的错误消息,然后使用消息id:

调用RAISERROR
RAISERROR (51000, 16, 1)