RAISERROR (Transact-SQL)RAISERROR (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Genera un mensaje de error e inicia el procesamiento de errores de la sesión.Generates an error message and initiates error processing for the session. RAISERROR puede hacer referencia a un mensaje definido por el usuario almacenado en la vista de catálogo sys.messages o puede generar un mensaje dinámicamente.RAISERROR can either reference a user-defined message stored in the sys.messages catalog view or build a message dynamically. El mensaje se devuelve como un mensaje de error de servidor a la aplicación que realiza la llamada o a un bloque CATCH asociado de una construcción TRY…CATCH.The message is returned as a server error message to the calling application or to an associated CATCH block of a TRY...CATCH construct. Las nuevas aplicaciones deben usar THROW en su lugar.New applications should use THROW instead.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server and Azure SQL Database  
  
RAISERROR ( { msg_id | msg_str | @local_variable }  
    { ,severity ,state }  
    [ ,argument [ ,...n ] ] )  
    [ WITH option [ ,...n ] ]  
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
RAISERROR ( { msg_str | @local_variable }  
    { ,severity ,state }  
    [ ,argument [ ,...n ] ] )  
    [ WITH option [ ,...n ] ]  

ArgumentosArguments

msg_idmsg_id
Es un número de mensaje de error definido por el usuario almacenado en la vista de catálogo sys.messages por medio de sp_addmessage.Is a user-defined error message number stored in the sys.messages catalog view using sp_addmessage. Los números de error para los mensajes de error definidos por el usuario deberían ser mayores que 50000.Error numbers for user-defined error messages should be greater than 50000. Si no se especifica msg_id, RAISERROR genera un mensaje de error con el número 50000.When msg_id is not specified, RAISERROR raises an error message with an error number of 50000.

msg_strmsg_str
Es un mensaje definido por el usuario con un formato similar al de la función printf de la biblioteca de C estándar.Is a user-defined message with formatting similar to the printf function in the C standard library. El mensaje de error puede tener 2.047 caracteres como máximo.The error message can have a maximum of 2,047 characters. Si el mensaje contiene más de 2.048 caracteres, solamente aparecerán los 2.044 primeros y se agregarán puntos suspensivos para indicar que el mensaje se ha truncado.If the message contains 2,048 or more characters, only the first 2,044 are displayed and an ellipsis is added to indicate that the message has been truncated. Tenga en cuenta que los parámetros de sustitución utilizan más caracteres de lo que muestra la salida debido al comportamiento del almacenamiento interno.Note that substitution parameters consume more characters than the output shows because of internal storage behavior. Por ejemplo, el parámetro de sustitución de %d con el valor 2 asignado genera en realidad un carácter en la cadena del mensaje, pero internamente ocupa tres caracteres adicionales de almacenamiento.For example, the substitution parameter of %d with an assigned value of 2 actually produces one character in the message string but also internally takes up three additional characters of storage. Este requisito de almacenamiento reduce el número de caracteres disponibles para la salida del mensaje.This storage requirement decreases the number of available characters for message output.

Si se especifica msg_str, RAISERROR genera un mensaje de error con el número 50000.When msg_str is specified, RAISERROR raises an error message with an error number of 50000.

msg_str es una cadena de caracteres que incluye especificaciones de conversión opcionales.msg_str is a string of characters with optional embedded conversion specifications. Cada especificación de conversión define cómo se aplica formato a un valor de la lista de argumentos y cómo se coloca en un campo en la posición indicada en la especificación de conversión de msg_str.Each conversion specification defines how a value in the argument list is formatted and placed into a field at the location of the conversion specification in msg_str. Las especificaciones de conversión tienen el formato siguiente:Conversion specifications have this format:

% [[flag] [width] [.% [[flag] [width] [. precision] [{h | l}]] typeprecision] [{h | l}]] type

Los parámetros que se pueden usar en msg_str son:The parameters that can be used in msg_str are:

flagflag

Es un código que determina el espaciado y la justificación del valor sustituido.Is a code that determines the spacing and justification of the substituted value.

códigoCode Prefijo o justificaciónPrefix or justification DescripciónDescription
- (menos)- (minus) Justificado a la izquierdaLeft-justified Justifica a la izquierda el valor del argumento en el ancho de campo dado.Left-justify the argument value within the given field width.
+ (más)+ (plus) Prefijo de signoSign prefix Coloca el signo más (+) o menos (-) delante del valor del argumento, si el valor es de un tipo con signo.Preface the argument value with a plus (+) or minus (-) if the value is of a signed type.
0 (cero)0 (zero) Relleno con cerosZero padding Coloca ceros iniciales en la salida hasta alcanzar el ancho mínimo.Preface the output with zeros until the minimum width is reached. Cuando aparecen 0 y el signo menos (-), el 0 no se tiene en cuenta.When 0 and the minus sign (-) appear, 0 is ignored.
# (número)# (number) Prefijo 0x del tipo hexadecimal de x o X0x prefix for hexadecimal type of x or X Cuando se utiliza con el formato o, x o X, la marca del signo de número (#) se coloca delante de los valores distintos de cero con 0, 0x o 0X, respectivamente.When used with the o, x, or X format, the number sign (#) flag prefaces any nonzero value with 0, 0x, or 0X, respectively. Cuando d, i, o u llevan delante la marca del signo de número (#), se omite la marca.When d, i, or u are prefaced by the number sign (#) flag, the flag is ignored.
' ' (espacio en blanco)' ' (blank) Relleno con espaciosSpace padding Coloca delante del valor de salida espacios en blanco si el valor tiene signo y es positivo.Preface the output value with blank spaces if the value is signed and positive. Se omite cuando se incluye con la marca del signo más (+).This is ignored when included with the plus sign (+) flag.

widthwidth

Es un entero que define el ancho mínimo del campo en el que se coloca el valor del argumento.Is an integer that defines the minimum width for the field into which the argument value is placed. Si la longitud del valor del argumento es igual o mayor que width, el valor se imprime sin relleno.If the length of the argument value is equal to or longer than width, the value is printed with no padding. Si el valor es menor que width, se rellena hasta obtener la longitud especificada en width.If the value is shorter than width, the value is padded to the length specified in width.

El asterisco (*) significa que el ancho se especifica mediante el argumento asociado de la lista de argumentos, que debe tener un valor entero.An asterisk (*) means that the width is specified by the associated argument in the argument list, which must be an integer value.

precisiónprecision

Es el número máximo de caracteres del valor del argumento que se utilizan para valores de cadena.Is the maximum number of characters taken from the argument value for string values. Por ejemplo, si una cadena tiene cinco caracteres y la precisión es 3, solo se utilizan los tres primeros caracteres del valor de cadena.For example, if a string has five characters and precision is 3, only the first three characters of the string value are used.

Para los valores enteros, precision es el número mínimo de dígitos impresos.For integer values, precision is the minimum number of digits printed.

El asterisco (*) significa que la precisión se especifica mediante el argumento asociado de la lista de argumentos, que debe tener un valor entero.An asterisk (*) means that the precision is specified by the associated argument in the argument list, which must be an integer value.

{h | l} type{h | l} type

Se usa con los tipos de caracteres d, i, o, s, x, X, u, y crea valores shortint (h) o longint (l).Is used with character types d, i, o, s, x, X, or u, and creates shortint (h) or longint (l) values.

Especificación de tipoType specification RepresentaRepresents
d o id or i Entero con signoSigned integer
oo Octal sin signoUnsigned octal
ss StringString
uu Entero sin signoUnsigned integer
x o Xx or X Hexadecimal sin signoUnsigned hexadecimal

Nota

Estas especificaciones de tipo se basan en las definidas originalmente para la función printf de la biblioteca de C estándar.These type specifications are based on the ones originally defined for the printf function in the C standard library. Las especificaciones de tipo usadas en las cadenas de mensajes RAISERROR se asignan a tipos de datos de Transact-SQLTransact-SQL, mientras que las especificaciones usadas en printf se asignan a tipos de datos del lenguaje C.The type specifications used in RAISERROR message strings map to Transact-SQLTransact-SQL data types, while the specifications used in printf map to C language data types. RAISERROR no admite las especificaciones de tipo usadas en printf cuando Transact-SQLTransact-SQL no tiene un tipo de datos similar al tipo de datos de C asociado.Type specifications used in printf are not supported by RAISERROR when Transact-SQLTransact-SQL does not have a data type similar to the associated C data type. Por ejemplo, RAISERROR no admite la especificación % para punteros porque Transact-SQLTransact-SQL no tiene un tipo de datos de puntero.For example, the %p specification for pointers is not supported in RAISERROR because Transact-SQLTransact-SQL does not have a pointer data type.

Nota

Para convertir un valor al tipo de datos Transact-SQLTransact-SQLbigint, especifique %I64d.To convert a value to the Transact-SQLTransact-SQL bigint data type, specify %I64d.

@local_variable@local_variable
Es una variable de un tipo de datos de caracteres válido que contiene una cadena formateada de la misma forma que msg_str.Is a variable of any valid character data type that contains a string formatted in the same manner as msg_str. @local_variable debe ser char o varchar, o bien se debe poder convertir implícitamente a estos tipos de datos.@local_variable must be char or varchar, or be able to be implicitly converted to these data types.

severityseverity
Es el nivel de gravedad definido por el usuario asociado a este mensaje.Is the user-defined severity level associated with this message. Cuando se usa msg_id para generar un mensaje definido por el usuario creado con sp_addmessage, la gravedad especificada en RAISERROR reemplaza la gravedad especificada en sp_addmessage.When using msg_id to raise a user-defined message created using sp_addmessage, the severity specified on RAISERROR overrides the severity specified in sp_addmessage.

Todos los usuarios pueden especificar los niveles de gravedad del 0 al 18.Severity levels from 0 through 18 can be specified by any user. Solo los miembros del rol fijo de servidor sysadmin o los usuarios con permisos ALTER TRACE pueden especificar los niveles de gravedad del 19 al 25.Severity levels from 19 through 25 can only be specified by members of the sysadmin fixed server role or users with ALTER TRACE permissions. Para los niveles de gravedad del 19 al 25, se necesita la opción WITH LOG.For severity levels from 19 through 25, the WITH LOG option is required. Los niveles de gravedad menores que 0 se interpretan como 0.Severity levels less than 0 are interpreted as 0. Los niveles de gravedad mayores que 25 se interpretan como 25.Severity levels greater than 25 are interpreted as 25.

Precaución

Los niveles de gravedad del 20 al 25 se consideran muy negativos.Severity levels from 20 through 25 are considered fatal. Si se encuentra un nivel de gravedad de este tipo, la conexión de cliente termina tras recibir el mensaje, y el error se incluye en el registro de errores y en el registro de la aplicación.If a fatal severity level is encountered, the client connection is terminated after receiving the message, and the error is logged in the error and application logs.

Puede especificar -1 para devolver el valor de gravedad asociado al error como se muestra en el ejemplo siguiente.You can specify -1 to return the severity value associated with the error as shown in the following example.

RAISERROR (15600,-1,-1, 'mysp_CreateCustomer');  

El conjunto de resultados es el siguiente.Here is the result set.

Msg 15600, Level 15, State 1, Line 1   
An invalid parameter or option was specified for procedure 'mysp_CreateCustomer'.

statestate
Entero entre 0 y 255.Is an integer from 0 through 255. Los valores negativos son 1 de forma predeterminada.Negative values default to 1. No deben usarse valores mayores que 255.Values larger than 255 should not be used.

Si se genera el mismo error definido por el usuario en varias ubicaciones, el uso de un único número de estado para cada ubicación puede ayudar a averiguar qué sección del código está generando los errores.If the same user-defined error is raised at multiple locations, using a unique state number for each location can help find which section of code is raising the errors.

argumentargument
Son los parámetros usados en la sustitución de las variables definidas en msg_str o el mensaje correspondiente a msg_id.Are the parameters used in the substitution for variables defined in msg_str or the message corresponding to msg_id. Puede haber 0 o más parámetros de sustitución, pero el número total no puede superar 20.There can be 0 or more substitution parameters, but the total number of substitution parameters cannot exceed 20. Cada parámetro de sustitución puede ser una variable local o cualquiera de estos tipos de datos: tinyint, smallint, int, char, varchar, nchar, nvarchar, binary o varbinary.Each substitution parameter can be a local variable or any of these data types: tinyint, smallint, int, char, varchar, nchar, nvarchar, binary, or varbinary. No se admiten otros tipos de datos.No other data types are supported.

Opciónoption
Es una opción personalizada del error. Puede tener uno de los valores de la tabla siguiente.Is a custom option for the error and can be one of the values in the following table.

ValorValue DescripciónDescription
LOGLOG Guarda el error en el registro de errores y en el registro de aplicación de la instancia del Motor de base de datosDatabase Engine de MicrosoftMicrosoft SQL ServerSQL Server.Logs the error in the error log and the application log for the instance of the MicrosoftMicrosoft SQL ServerSQL Server Motor de base de datosDatabase Engine. Los errores guardados en el registro de errores tienen un límite máximo de 440 bytes.Errors logged in the error log are currently limited to a maximum of 440 bytes. Solo los miembros del rol fijo de servidor sysadmin o los usuarios con permisos ALTER TRACE pueden especificar WITH LOG.Only a member of the sysadmin fixed server role or a user with ALTER TRACE permissions can specify WITH LOG.

Se aplica a:Applies to: SQL ServerSQL Server, SQL DatabaseSQL DatabaseSQL ServerSQL Server, SQL DatabaseSQL Database
NOWAITNOWAIT Envía inmediatamente los mensajes al cliente.Sends messages immediately to the client.

Se aplica a:Applies to: SQL ServerSQL Server, SQL DatabaseSQL DatabaseSQL ServerSQL Server, SQL DatabaseSQL Database
SETERRORSETERROR Establece los valores de @@ERROR y ERROR_NUMBER en msg_id o 50000, independientemente del nivel de gravedad.Sets the @@ERROR and ERROR_NUMBER values to msg_id or 50000, regardless of the severity level.

Se aplica a:Applies to: SQL ServerSQL Server, SQL DatabaseSQL DatabaseSQL ServerSQL Server, SQL DatabaseSQL Database

NotasRemarks

Los errores generados por RAISERROR funcionan igual que los generados por el código del Motor de base de datosDatabase Engine.The errors generated by RAISERROR operate the same as errors generated by the Motor de base de datosDatabase Engine code. Las funciones del sistema ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, ERROR_STATE y @@ERROR informan de los valores especificados por RAISERROR.The values specified by RAISERROR are reported by the ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, ERROR_STATE, and @@ERROR system functions. Cuando se ejecuta RAISERROR con un nivel de gravedad 11 o superior en un bloque TRY, transfiere el control al bloque CATCH asociado.When RAISERROR is run with a severity of 11 or higher in a TRY block, it transfers control to the associated CATCH block. El error se devuelve al autor de la llamada si RAISERROR se ejecuta:The error is returned to the caller if RAISERROR is run:

  • Fuera del ámbito de cualquier bloque TRY.Outside the scope of any TRY block.

  • Con un nivel de gravedad 10 o inferior en un bloque TRY.With a severity of 10 or lower in a TRY block.

  • Con un nivel de gravedad 20 o superior que finaliza la conexión con la base de datos.With a severity of 20 or higher that terminates the database connection.

Los bloques CATCH pueden utilizar RAISERROR para volver a iniciar el error que invocó el bloque CATCH mediante funciones del sistema como ERROR_NUMBER y ERROR_MESSAGE con el fin de recuperar la información del error original.CATCH blocks can use RAISERROR to rethrow the error that invoked the CATCH block by using system functions such as ERROR_NUMBER and ERROR_MESSAGE to retrieve the original error information. @@ERROR está establecido de forma predeterminada en 0 para los mensajes con una gravedad de 1 a 10.@@ERROR is set to 0 by default for messages with a severity from 1 through 10.

Cuando msg_id especifica un mensaje definido por el usuario disponible en la vista de catálogo sys.messages, RAISERROR procesa el mensaje de la columna de texto usando las mismas reglas que se aplican al texto de un mensaje definido por el usuario especificado con msg_str.When msg_id specifies a user-defined message available from the sys.messages catalog view, RAISERROR processes the message from the text column using the same rules as are applied to the text of a user-defined message specified using msg_str. El texto del mensaje definido por el usuario puede contener especificaciones de conversión. En ese caso, RAISERROR asigna los valores de los argumentos a las especificaciones de conversión.The user-defined message text can contain conversion specifications, and RAISERROR will map argument values into the conversion specifications. Use sp_addmessage y sp_dropmessage para agregar y quitar, respectivamente, mensajes de error definidos por el usuario.Use sp_addmessage to add user-defined error messages and sp_dropmessage to delete user-defined error messages.

RAISERROR se puede utilizar como alternativa a PRINT para devolver mensajes a las aplicaciones que realizan llamadas.RAISERROR can be used as an alternative to PRINT to return messages to calling applications. La sustitución de caracteres que RAISERROR admite es similar a la de la función printf de la biblioteca de C estándar, mientras que no sucede lo mismo con la instrucción PRINT de Transact-SQLTransact-SQL.RAISERROR supports character substitution similar to the functionality of the printf function in the C standard library, while the Transact-SQLTransact-SQL PRINT statement does not. La instrucción PRINT no se ve afectada por los bloques TRY, mientras que, si RAISERROR se ejecuta con un nivel de gravedad de 11 a 19 en un bloque TRY, transfiere el control al bloque CATCH asociado.The PRINT statement is not affected by TRY blocks, while a RAISERROR run with a severity of 11 to 19 in a TRY block transfers control to the associated CATCH block. Especifique un nivel de gravedad 10 o inferior para que RAISERROR devuelva un mensaje desde un bloque TRY sin invocar el bloque CATCH.Specify a severity of 10 or lower to use RAISERROR to return a message from a TRY block without invoking the CATCH block.

Normalmente, los argumentos reemplazan las especificaciones de conversión secuencialmente: el primer argumento reemplaza la primera especificación de conversión, el segundo argumento reemplaza la segunda especificación de conversión, y así sucesivamente.Typically, successive arguments replace successive conversion specifications; the first argument replaces the first conversion specification, the second argument replaces the second conversion specification, and so on. Por ejemplo, en la siguiente instrucción RAISERROR, el primer argumento N'number' reemplaza la primera especificación de conversión %s y el segundo argumento 5 reemplaza la segunda especificación de conversión %d.For example, in the following RAISERROR statement, the first argument of N'number' replaces the first conversion specification of %s; and the second argument of 5 replaces the second conversion specification of %d.

RAISERROR (N'This is message %s %d.', -- Message text.  
           10, -- Severity,  
           1, -- State,  
           N'number', -- First argument.  
           5); -- Second argument.  
-- The message text returned is: This is message number 5.  
GO  

Si se especifica un asterisco (*) para el ancho o la precisión de una especificación de conversión, el valor que se utilizará para el ancho o la precisión se especifica como un valor de argumento entero.If an asterisk (*) is specified for either the width or precision of a conversion specification, the value to be used for the width or precision is specified as an integer argument value. En este caso, una especificación de conversión puede utilizar hasta tres argumentos, uno para el valor de ancho, uno para el valor de precisión y uno para el valor de sustitución.In this case, one conversion specification can use up to three arguments, one each for the width, precision, and substitution value.

Por ejemplo, las dos instrucciones RAISERROR siguientes devuelven la misma cadena.For example, both of the following RAISERROR statements return the same string. Una especifica los valores de ancho y precisión en la lista de argumentos y la otra en la especificación de conversión.One specifies the width and precision values in the argument list; the other specifies them in the conversion specification.

RAISERROR (N'<\<%*.*s>>', -- Message text.  
           10, -- Severity,  
           1, -- State,  
           7, -- First argument used for width.  
           3, -- Second argument used for precision.  
           N'abcde'); -- Third argument supplies the string.  
-- The message text returned is: <<    abc>>.  
GO  
RAISERROR (N'<\<%7.3s>>', -- Message text.  
           10, -- Severity,  
           1, -- State,  
           N'abcde'); -- First argument supplies the string.  
-- The message text returned is: <<    abc>>.  
GO  

EjemplosExamples

A.A. Devolver información de error desde un bloque CATCHReturning error information from a CATCH block

En el siguiente ejemplo de código se muestra cómo utilizar RAISERROR dentro de un bloque TRY para provocar que la ejecución salte al bloque CATCH asociado.The following code example shows how to use RAISERROR inside a TRY block to cause execution to jump to the associated CATCH block. También se muestra cómo utilizar RAISERROR para devolver información acerca del error que invocó al bloque CATCH.It also shows how to use RAISERROR to return information about the error that invoked the CATCH block.

Nota

RAISERROR solo genera errores con un estado comprendido entre 1 y 127.RAISERROR only generates errors with state from 1 through 127. Como Motor de base de datosDatabase Engine puede generar errores con un estado 0, se recomienda que compruebe el estado del error que devuelve ERROR_STATE antes de pasarlo como un valor al parámetro de estado RAISERROR.Because the Motor de base de datosDatabase Engine may raise errors with state 0, we recommend that you check the error state returned by ERROR_STATE before passing it as a value to the state parameter of RAISERROR.

BEGIN TRY  
    -- RAISERROR with severity 11-19 will cause execution to   
    -- jump to the CATCH block.  
    RAISERROR ('Error raised in TRY block.', -- Message text.  
               16, -- Severity.  
               1 -- State.  
               );  
END TRY  
BEGIN CATCH  
    DECLARE @ErrorMessage NVARCHAR(4000);  
    DECLARE @ErrorSeverity INT;  
    DECLARE @ErrorState INT;  
  
    SELECT   
        @ErrorMessage = ERROR_MESSAGE(),  
        @ErrorSeverity = ERROR_SEVERITY(),  
        @ErrorState = ERROR_STATE();  
  
    -- Use RAISERROR inside the CATCH block to return error  
    -- information about the original error that caused  
    -- execution to jump to the CATCH block.  
    RAISERROR (@ErrorMessage, -- Message text.  
               @ErrorSeverity, -- Severity.  
               @ErrorState -- State.  
               );  
END CATCH;  

B.B. Crear un mensaje ad hoc en sys.messagesCreating an ad hoc message in sys.messages

En el siguiente ejemplo se indica cómo mostrar un mensaje almacenado en la vista de catálogo sys.messages.The following example shows how to raise a message stored in the sys.messages catalog view. El mensaje se agregó a la vista de catálogo sys.messages por medio del procedimiento almacenado del sistema sp_addmessage con el número de mensaje 50005.The message was added to the sys.messages catalog view by using the sp_addmessage system stored procedure as message number 50005.

sp_addmessage @msgnum = 50005,  
              @severity = 10,  
              @msgtext = N'<\<%7.3s>>';  
GO  
RAISERROR (50005, -- Message id.  
           10, -- Severity,  
           1, -- State,  
           N'abcde'); -- First argument supplies the string.  
-- The message text returned is: <<    abc>>.  
GO  
sp_dropmessage @msgnum = 50005;  
GO  

C.C. Utilizar una variable local para suministrar el texto del mensajeUsing a local variable to supply the message text

En el siguiente ejemplo de código se muestra cómo utilizar una variable local para suministrar el texto del mensaje para una instrucción RAISERROR.The following code example shows how to use a local variable to supply the message text for a RAISERROR statement.

DECLARE @StringVariable NVARCHAR(50);  
SET @StringVariable = N'<\<%7.3s>>';  
  
RAISERROR (@StringVariable, -- Message text.  
           10, -- Severity,  
           1, -- State,  
           N'abcde'); -- First argument supplies the string.  
-- The message text returned is: <<    abc>>.  
GO  

Consulte tambiénSee Also

Funciones integradas (Transact-SQL) Built-in Functions (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
PRINT (Transact-SQL) PRINT (Transact-SQL)
sp_addmessage (Transact-SQL) sp_addmessage (Transact-SQL)
sp_dropmessage (Transact-SQL) sp_dropmessage (Transact-SQL)
sys.messages (Transact-SQL) sys.messages (Transact-SQL)
xp_logevent (Transact-SQL) xp_logevent (Transact-SQL)
@@ERROR (Transact-SQL) @@ERROR (Transact-SQL)
ERROR_LINE (Transact-SQL) ERROR_LINE (Transact-SQL)
ERROR_MESSAGE (Transact-SQL) ERROR_MESSAGE (Transact-SQL)
ERROR_NUMBER (Transact-SQL) ERROR_NUMBER (Transact-SQL)
ERROR_PROCEDURE (Transact-SQL) ERROR_PROCEDURE (Transact-SQL)
ERROR_SEVERITY (Transact-SQL) ERROR_SEVERITY (Transact-SQL)
ERROR_STATE (Transact-SQL) ERROR_STATE (Transact-SQL)
TRY...CATCH (Transact-SQL)TRY...CATCH (Transact-SQL)