Error Severity Values
Contents |
resources Windows Server 2012 resources Programs MSDN subscriptions Overview Benefits Administrators Students Microsoft Imagine Microsoft Student Partners ISV Startups TechRewards Events Community Magazine Forums error severity levels greater than 18 Blogs Channel 9 Documentation APIs and reference Dev centers Retired content sql error severity levels Samples We’re sorry. The content you requested has been removed. You’ll be auto redirected in 1 second. error severity in sql server 2012 SQL Server Microsoft SQL Server Language Reference Transact-SQL Reference (Database Engine) Transact-SQL Reference (Database Engine) RAISERROR RAISERROR RAISERROR Reserved Keywords (Transact-SQL) Transact-SQL Syntax Conventions (Transact-SQL) BACKUP and
Raiserror Severity Levels
RESTORE Statements (Transact-SQL) Built-in Functions (Transact-SQL) Collation (Transact-SQL) Control-of-Flow Language (Transact-SQL) Cursors (Transact-SQL) Data Definition Language (DDL) Statements (Transact-SQL) Data Manipulation Language (DML) Statements (Transact-SQL) Data Types (Transact-SQL) EXECUTE Expressions (Transact-SQL) Language Elements (Transact-SQL) Management Commands Operators (Transact-SQL) Predicates (Transact-SQL) PRINT (Transact-SQL) RAISERROR Security Statements Service Broker Statements SET Statements (Transact-SQL) SQL Server Utilities Statements raiserror severity and state System Stored Functions (Transact-SQL) System Stored Procedures (Transact-SQL) System Tables (Transact-SQL) System Views (Transact-SQL) Transaction Statements (Transact-SQL) Variables (Transact-SQL) XML Statements (Transact-SQL) TOC Collapse the table of content Expand the table of content This documentation is archived and is not being maintained. This documentation is archived and is not being maintained. RAISERROR (Transact-SQL) Other Versions SQL Server 2012 THIS TOPIC APPLIES TO: SQL Server (starting with 2008)Azure SQL DatabaseAzure SQL Data Warehouse Parallel Data Warehouse Generates an error message and initiates error processing for the session. RAISERROR can either reference a user-defined message stored in the sys.messages catalog view or build a message dynamically. The message is returned as a server error message to the calling application or to an associated CATCH block of a TRY…CATCH construct. New applications should use THROW instead. Transact-SQL Syntax ConventionsSyntax Copy -- Syntax for SQL Server and Azure SQL Database RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ]
of Errors and severity level in SQL Server with catalog view sysmessages Few days back I have written “Error handling with “THROW” command in SQL Server 2012”. After reading this article, sql error state one of the regular blog readers has asked me question why I have
Sql Server Error List
used 16 severities for the error? This is really interesting question so I thought to answer him in the
Sql Server Error State List
form of this blog post so that everyone who is unaware with error messages in SQL Server can be benefited. 16 is a default severity level and used for most user exception https://msdn.microsoft.com/en-us/library/ms178592.aspx and that was the reason I have used it. You can get a list of error messages along with its severity level and error number from following catalog view. SELECT * FROM master.dbo.sysmessages WHERE error=8134 -- error message number I got in previous article AND msglangid = 1033; --language selection, 1033 represents US english There are total number of 10542 error message comes http://blog.extreme-advice.com/2013/01/29/list-of-errors-and-severity-level-in-sql-server-with-catalog-view-sysmessages/ by default for language id 1033 (US English). Error messages given in total 22 language so 10542 error * repeated 22 times = 231924 rows in sysmessages. Generally we have sixteen different severity level in SQL Server 2012 and each severity represents criticalness of an error. You can get a list of severity from the following TSQL. SELECT DISTINCT severity FROM master.dbo.sysmessages; Here is the brief description of different severity. Severity level 0-10: These are just information message not actual error. Severity level 11 to 16: These are errors caused due to user mistakes. We have tried to divide value by 0 in previous article and hence we got severity error 16. Severity Level 17: This severity indicates that an operation making SQL Server out of resources or exceeding defined limit. That may be disk space or lock limit. Severity Level 18: This error represents nonfatal internal software error. Severity Level 19: This error represents some non-configurable internal limit has been exceeded and the current batch process is terminated. To be very frank, I have not seen this severity practically in my life. Severity Level 20: This severity indicates
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn http://stackoverflow.com/questions/1122925/what-do-the-different-raiserror-severity-levels-mean more about Stack Overflow the company Business Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up What do the different RAISERROR severity levels mean? up vote 58 error severity down vote favorite 24 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 error severity levels 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? sql-server raiserror share|improve this question asked Jul 14 '09 at 0:46 Steve S. 373146 2 I don't know for other versions but I was very surprised to see that with SQL Server 2008, severity 16 do NOT terminate execution. –user1791675 Nov 1 '12 at 14:48 add a comment| 1 Answer 1 active oldest votes up vote 83 down vote accepted 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. share|improve this answer edited Oct 30 '15 at 14:08 Lankymart 7,18142252 answered Jul