使用RAISERROR返回超过50000的异常数

时间:2013-04-04 11:23:18

标签: c# sql sql-server exception-handling

我从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);

在C#代码中返回SqlException,编号为50000,其中进一步操作。 出于某些业务逻辑原因,我需要返回的数字超过50000。 例如,我们使用THROW关键字。

THROW 51000,'error',1

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您应该使用sp_addmessage为此错误号创建用户定义的错误消息,然后使用消息ID调用RAISERROR:

RAISERROR (51000, 16, 1)