Sql server 在错误进程中返回错误ID 50000
我注意到,当在存储过程中触发此错误时,它返回50000。有没有办法将其修改为50999,这样前端应用程序就可以明确地识别错误,而不会将其与其他任何东西混淆Sql server 在错误进程中返回错误ID 50000,sql-server,tsql,Sql Server,Tsql,我注意到,当在存储过程中触发此错误时,它返回50000。有没有办法将其修改为50999,这样前端应用程序就可以明确地识别错误,而不会将其与其他任何东西混淆 RAISERROR('Client already has an Active Visit!',16,1) 根据以下文件: 该消息作为服务器错误消息返回给调用方 应用程序或到TRY…CATCH构造的关联CATCH块。 新应用程序应改用抛出。 我的。() 我不知道您的SQL语句是什么样子的,但是,您可以这样做: BEGIN TRY
RAISERROR('Client already has an Active Visit!',16,1)
根据以下文件: 该消息作为服务器错误消息返回给调用方 应用程序或到
TRY…CATCH
构造的关联CATCH
块。
新应用程序应改用抛出。
我的。()
我不知道您的SQL语句是什么样子的,但是,您可以这样做:
BEGIN TRY
--Your INSERT statement
SELECT 0/0; --Causes an error
END TRY
BEGIN CATCH
THROW 50099, 'Client already has an Active Visit!',1;
END CATCH
根据以下文件: 该消息作为服务器错误消息返回给调用方 应用程序或到
TRY…CATCH
构造的关联CATCH
块。
新应用程序应改用抛出。
我的。()
我不知道您的SQL语句是什么样子的,但是,您可以这样做:
BEGIN TRY
--Your INSERT statement
SELECT 0/0; --Causes an error
END TRY
BEGIN CATCH
THROW 50099, 'Client already has an Active Visit!',1;
END CATCH
您需要指定raiseerror函数的第一个参数,如下所示:
--configure the error message
sp_addmessage @msgnum = 50999,
@severity = 16,
@msgtext = N'Client %s already has an Active Visit!';
GO
-- throw error
RAISERROR (50999, -- Message id.
16, -- Severity,
1, -- State,
N'123456789'); -- First argument supplies the string.
GO
输出将是
Msg 50999, Level 16, State 1, Line 8
Client 123456789 already has an Active Visit!
如果未指定错误号,则raiserror将假定为50000。文档…您需要指定raiseerror函数的第一个参数,如下所示:
--configure the error message
sp_addmessage @msgnum = 50999,
@severity = 16,
@msgtext = N'Client %s already has an Active Visit!';
GO
-- throw error
RAISERROR (50999, -- Message id.
16, -- Severity,
1, -- State,
N'123456789'); -- First argument supplies the string.
GO
输出将是
Msg 50999, Level 16, State 1, Line 8
Client 123456789 already has an Active Visit!
如果未指定错误号,则raiserror将假定为50000。文档…使用RAISEERROR,如果使用message作为第一个参数,则无法指定错误ID,它隐式为50000。但是,您可以创建带有参数的自定义消息,并将代码传递给该消息。即:
RAISERROR('Client already has an Active Visit! - Specific Err.Number:[%d]',16,1, 50999)
另外,对于新应用程序,建议使用Try\Catch方法。对于RAISEERROR,如果使用message作为第一个参数,则无法指定错误ID,它是隐式的。但是,您可以创建带有参数的自定义消息,并将代码传递给该消息。即:
RAISERROR('Client already has an Active Visit! - Specific Err.Number:[%d]',16,1, 50999)
另外,Try\Catch是新应用程序的建议方法。@CetinBasoz如果正确,这将在“客户端已经有活动访问!”附近引发错误
Msg 102,级别15,状态1,第1行错误语法代码>文档特别指出“当指定msg_str时,RAISERROR会引发一条错误消息,错误号为50000。”@CetinBasoz如果正确,则会在“客户端已经有活动访问!”附近引发错误msg 102,级别15,状态1,第1行语法错误代码>文档特别指出“当指定msg_str时,RAISERROR将引发一条错误消息,错误号为50000。”