RAISERROR statement [T-SQL]

Description

Signals an error and sends a message to the client.

Syntax

RAISERROR error-number [ format-string ] [, arg-list]

Examples

Example 1

The following statement raises error 99999, which is in the range for user-defined errors, and sends a message to the client.

RAISERROR 99999 'Invalid entry for this 
column: %1!', @val

There is no comma between the error-number and the format-string parameters. The first item following a comma is interpreted as the first item in the argument list.

Usage

The RAISERROR statement allows user-defined errors to be signaled, and sends a message on the client.

The error-number is a five-digit integer greater than 17000. The error number is stored in the global variable @@error.

If format-string is not supplied or is empty, the error number is used to locate an error message in the system tables. Adaptive Server Enterprise obtains messages 17000-19999 from the SYSMESSAGES table. In Sybase IQ this table is an empty view, so errors in this range should provide a format string. Messages for error numbers of 20000 or greater are obtained from the SYS.SYSUSERMESSAGES table.

The format-string can be up to 255 bytes long. This is the same as in Adaptive Server Enterprise.

The extended values supported by the SQL Server or Adaptive Server Enterprise RAISERROR statement are not supported in Sybase IQ.

The format string can contain placeholders for the arguments in the optional argument list. These placeholders are of the form %nn!, where nn is an integer between 1 and 20.

Intermediate RAISERROR status and code information is lost after the procedure terminates. If at return time an error occurs along with the RAISERROR then the error information is returned and the RAISERROR information is lost. The application can query intermediate RAISERROR statuses by examining @@error global variable at different execution points.


Side effects

None.

Standards

Permissions

Must be connected to the database.

See also

“CONTINUE_AFTER_RAISERROR option [TSQL]”

“ON_TSQL_ERROR option [TSQL]”