RAISERROR со степенью серьезности выше 10 будет рассматриваться клиентом ADO.Net как исключение.В зависимости от того, как выглядит ваш контекст вызова, это может или не может откат транзакции.Если вы используете SqlTransaction или TransactionScope на клиенте или блок BEGIN TRY / BEGIN CATCH на стороне сервера, это, вероятно, откатит транзакцию.Дело в том, что RAISERROR не фиксирует и не откатывает транзакцию, это ваш собственный код, который откатывает или фиксирует, и мы не можем знать, что вы делаете из вашего сообщения.
RAISERROR со степенью серьезности ниже 10 будет считаться информационнойсообщение и не вызывает исключений.См. Серьезность ошибок компонента Database Engine .Вероятно, поэтому вы говорите, что «он не показывает сообщение» (что бы ни означало , что означает ).Платформы на стороне клиента обрабатывают информационные сообщения по-разному, например, ADO.Net вызовет событие SqlConnection.InfoMessage
в соединении, но не вызовет исключение.Возможно, в вашем приложении ничего не настроено для этого события, и ваш код просто игнорирует информационные сообщения.Например, как использовать событие InfoMessage, см. События подключения (ADO.NET)