状态参数在THROW语句中代表什么?

时间:2019-04-09 17:47:54

标签: sql-server tsql sql-server-2012

throw的语法是

THROW [ { error_number | @local_variable },  
        { message | @local_variable },  
        { state | @local_variable } ]   
[ ; ]

MSDN将状态描述为

state
Is a constant or variable between 0 and 255 that indicates the state to associate with the message. state is tinyint.

我在互联网上看到了几个使用1的值state的示例。

但是我仍然迷失了它的用途。它是否可以在调用代码时驱动某些业务逻辑,但是似乎error_number参数可以用于此目的?

有人可以用一个简单的用例/例子来解释吗?

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

某些错误消息可能会在代码中的多个位置引发   数据库引擎。例如,对于   几个不同的条件。每个导致   错误分配了唯一的状态代码。

     

当您查看包含有关已知信息的数据库时   问题,例如Microsoft知识库,可以使用状态   确定记录的问题是否与   您遇到的错误。例如,如果知识库文章   描述状态为2的1105错误和1105错误   您收到的消息状态为3,错误可能为   与文章中报道的原因不同。

     

Microsoft支持工程师还可以使用错误中的状态代码   在源代码中找到该错误代码所在的位置   上调。此信息可能会提供有关如何   诊断问题。