Что представляет собой аргумент состояния в выражении THROW? - PullRequest
0 голосов
/ 09 апреля 2019

Синтаксис 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 голосов
/ 09 апреля 2019

С MSDN :

Некоторые сообщения об ошибках могут появляться в нескольких местах кода для движок базы данных. Например, ошибка 1105 может быть поднята для несколько разных условий. Каждое конкретное условие, которое вызывает Ошибка назначает уникальный код состояния.

При просмотре баз данных, содержащих информацию об известных вопросы, такие как база знаний Microsoft, вы можете использовать состояние номер, чтобы определить, является ли зарегистрированный вопрос такой же, как ошибка, с которой вы столкнулись Например, если статья базы знаний описывает ошибку 1105 с состоянием 2 и ошибку 1105 полученное сообщение имело состояние 3, ошибка, вероятно, имеет причина отличается от той, о которой сообщается в статье.

Инженер службы поддержки Microsoft также может использовать код состояния из-за ошибки чтобы найти место в исходном коде, где этот код ошибки поднял. Эта информация может дать дополнительные идеи о том, как диагностировать проблему.

...