views:

1146

answers:

1

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?

+6  A: 

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).

Remus Rusanu
The MSDN link kind of says it all -- the information was right there in BOL, and I've never seen it before. Thanks!
Steve S.
google ... -social site:msdn.microsoft.com is your friend :)
Remus Rusanu
When you say "default", do you mean that an error level of 16 will be used if I call RAISERROR, passing no parameters. i.e. it will be caught by a catch block?
Triynko