Sql-server – What do the different RAISERROR severity levels mean

raiserrorsql-server

My best google result was this:

  • below 11 are warnings, not errors
  • 11-16 are available for use
  • above 16 are system errors
  • there is no behavioral difference among 11-16

But, from BOL, "Severity levels from 0 through 18 can be specified by any user."

In my particular stored procedure, I want the error returned to a .Net client application, so it looks like any severity level between 11-18 would do the trick. Does anyone have any authoritative information about what each of the levels mean, and how they should be used?

Best Solution

Database Engine Severity Levels

You should return 16. Is the default, most used error level:

Indicates general errors that can be corrected by the user.

Don't return 17-18, those indicate more severe errors, like resource problems:

Indicate software errors that cannot be corrected by the user. Inform your system administrator of the problem.

Also don't return 11-15 because those have a special meaning attached to each level (14 - security access, 15 - syntax error, 13 - deadlock etc).

Level 16 does not terminate execution.

When your intention is to log a warning but continue execution, use a severity level below 10 instead.