Был ли этот недокументированный синтаксис RAISERROR когда-либо задокументирован и впоследствии объявлен устаревшим?

Я работаю над большой кодовой базой SQL Server, часть которой находится в разработке, по крайней мере, с SQL 7 и, возможно, раньше.

Во всей кодовой базе метод сообщения об ошибке заключается в использовании следующего синтаксиса, который, насколько я могу судить, недокументирован

RAISERROR  

. Номер ошибки может иметь любое значение больше 13000; в таблице sys.messages не должно быть соответствующей записи. Сообщение об ошибке также может быть произвольным.

Следующий пример кода

raiserror 13000 'test error'

дает следующий результат

Msg 13000, Level 16, State 1, Line 1
test error

Это поведение такое же в SQL 2000, 2005 и 2008 (я не тестировал 2008 R2).

Мы ' я собираюсь попытаться стандартизировать поддерживаемый метод, но мой вопрос в том, откуда такое поведение в первую очередь.

Я предполагаю, что когда-то это должно было быть задокументировано, поддерживаемое поведение, но копии книг в Интернете для SQL 7 и ранее трудно найти. Кто-нибудь знает, когда это было поддержано или когда оно устарело, если вообще?

Изменить Чтобы уточнить, согласно документации , поддерживаемый синтаксис RAISERROR -

RAISERROR ( { msg_id | msg_str | @local_variable }
    { ,severity ,state }
    [ ,argument [ ,...n ] ] )
    [ WITH option [ ,...n ] ]

И любой номер ошибки пользователя, который не определен в sys.messages , должен быть увеличен с идентификатором сообщения об ошибке 50000

11
задан Ed Harper 20 September 2010 в 09:19
поделиться