Sql server sql server将错误传递给应用程序

Sql server sql server将错误传递给应用程序,sql-server,Sql Server,我需要将错误传递给应用程序。我编写了以下存储过程: 它是将错误传递给应用程序还是我们需要做更多的事情 例如 如果我需要在没有错误时传递0,如果有错误时传递错误号,如何使用raiserror进行传递?如何使用raiserror将错误记录到error_表中?更重要的是,您可以将上述错误传递给应用程序吗?RAISERROR将错误传递给客户端 如果要将错误记录到数据库中,请先在catch区域中进行记录,然后调用raiserror 如果您不想将错误传递给客户机(我在更喜欢返回错误代码的公司工作过),则不必

我需要将错误传递给应用程序。我编写了以下存储过程: 它是将错误传递给应用程序还是我们需要做更多的事情

例如


如果我需要在没有错误时传递0,如果有错误时传递错误号,如何使用raiserror进行传递?如何使用raiserror将错误记录到error_表中?更重要的是,您可以将上述错误传递给应用程序吗?

RAISERROR
将错误传递给客户端

如果要将错误记录到数据库中,请先在
catch
区域中进行记录,然后调用
raiserror

如果您不想将错误传递给客户机(我在更喜欢返回错误代码的公司工作过),则不必调用
raiserror
,只需从过程中返回一个非零值,如下所示:

RETURN -1
不要传递
raiserror(@errMessage,@errNumber,1)
。的参数是消息id、严重性、状态。您正在传递@errNumber作为严重性,这是不正确的

相反,您应该引发一个自定义错误,并在错误消息中以消息格式插入的形式传递捕获的异常信息:

RAISERROR(N'insert_emp: Error %i: %s', 16, 1, @errNumber, @errMessage);
对于希望在客户端处理中引发SqlException(或其他异常,根据所使用的客户端访问技术)的错误,应使用严重性16

对于信息性消息,应使用严重性1

RAISERROR(N'insert_emp: Error %i: %s', 16, 1, @errNumber, @errMessage);