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

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Gera uma mensagem de erro e inicia o processamento de erros da sessão.Generates an error message and initiates error processing for the session. RAISERROR pode referenciar uma mensagem de erro definida pelo usuário na exibição do catálogo sys.messages ou criar uma mensagem dinamicamente.RAISERROR can either reference a user-defined message stored in the sys.messages catalog view or build a message dynamically. A mensagem é retornada como uma mensagem de erro de servidor ao aplicativo de chamada ou a um bloco CATCH de um constructo 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. Em vez disso, os novos aplicativos devem usar THROW.New applications should use THROW instead.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

-- 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
É um número de mensagem de erro definido pelo usuário armazenado na exibição do catálogo sys.messages usando sp_addmessage.Is a user-defined error message number stored in the sys.messages catalog view using sp_addmessage. Os números de erro para mensagens de erro definidas pelo usuário deve ser maiores que 50000.Error numbers for user-defined error messages should be greater than 50000. Quando msg_id não é especificado, RAISERROR gera uma mensagem de erro com o número de erro 50000.When msg_id is not specified, RAISERROR raises an error message with an error number of 50000.

msg_strmsg_str
É uma mensagem definida pelo usuário com formatação semelhante à função printf na biblioteca padrão C.Is a user-defined message with formatting similar to the printf function in the C standard library. A mensagem de erro pode ter no máximo 2.047 caracteres.The error message can have a maximum of 2,047 characters. Se a mensagem tiver 2.048 caracteres ou mais, somente os primeiros 2.044 serão exibidos e um sinal de reticências será adicionado para indicar que a mensagem foi truncada.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. Observe que os parâmetros de substituição consomem mais caracteres que a saída mostra por causa de comportamento de armazenamento interno.Note that substitution parameters consume more characters than the output shows because of internal storage behavior. Por exemplo, o parâmetro de substituição de %d com um valor atribuído 2 realmente produz um caractere na cadeia de caracteres da mensagem, mas também ocupa internamente três caracteres adicionais de armazenamento.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. Esse requisito de armazenamento diminui o número de caracteres disponíveis para a saída de mensagem.This storage requirement decreases the number of available characters for message output.

Quando msg_id é especificado, RAISERROR gera uma mensagem de erro com o número de erro 50000.When msg_str is specified, RAISERROR raises an error message with an error number of 50000.

msg_str é uma cadeia de caracteres com especificações de conversão inseridas opcionais.msg_str is a string of characters with optional embedded conversion specifications. Cada especificação de conversão define como um valor na lista de argumentos é formatado e colocado em um campo no local da especificação de conversão em 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. As especificações de conversão têm este formato:Conversion specifications have this format:

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

Os parâmetros que podem ser usados em msg_str são:The parameters that can be used in msg_str are:

flagflag

É um código que determina o espaçamento e a justificação do valor substituído.Is a code that determines the spacing and justification of the substituted value.

CódigoCode Prefixo ou justificaçãoPrefix or justification DescriçãoDescription
- (menos)- (minus) Justificado à esquerdaLeft-justified Justifica o valor de argumento à esquerda dentro da largura de campo especificada.Left-justify the argument value within the given field width.
+ (mais)+ (plus) Prefixo de sinalSign prefix Precede o valor do argumento com um mais (+) ou menos (-) se o valor for de um tipo assinado.Preface the argument value with a plus (+) or minus (-) if the value is of a signed type.
0 (zero)0 (zero) Preenchimento de zerosZero padding Precede a saída com zeros até que a largura mínima seja atingida.Preface the output with zeros until the minimum width is reached. Quando 0 e o sinal de menos (-) são exibidos, 0 é ignorado.When 0 and the minus sign (-) appear, 0 is ignored.
# (número)# (number) Prefixo 0x para o tipo hexadecimal de x ou X0x prefix for hexadecimal type of x or X Quando usado com o formato o, x ou X, o sinalizador de tecla de cerquilha (#) precede qualquer valor diferente de zero com 0, 0x ou 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. Quando d, i ou u são precedidos pelo sinalizador de tecla de cerquilha (#), o sinalizador é ignorado.When d, i, or u are prefaced by the number sign (#) flag, the flag is ignored.
' ' (em branco)' ' (blank) Preenchimento de espaçoSpace padding Precede o valor de saída com espaços em branco se o valor for assinado e positivo.Preface the output value with blank spaces if the value is signed and positive. Isso é ignorado quando incluído com o sinalizador do sinal mais (+).This is ignored when included with the plus sign (+) flag.

widthwidth

É um inteiro que define a largura mínima para o campo no qual o valor do argumento é colocado.Is an integer that defines the minimum width for the field into which the argument value is placed. Se o tamanho do valor do argumento for igual ou maior que width, o valor será impresso sem nenhum preenchimento.If the length of the argument value is equal to or longer than width, the value is printed with no padding. Se o valor for menor que width, o valor será preenchido com o tamanho especificado em width.If the value is shorter than width, the value is padded to the length specified in width.

Um asterisco (*) significa que a largura é especificada pelo argumento associado na lista de argumentos, que deve ser um valor inteiro.An asterisk (*) means that the width is specified by the associated argument in the argument list, which must be an integer value.

precisãoprecision

É o número máximo de caracteres obtido do valor de argumento para os valores da cadeia de caracteres.Is the maximum number of characters taken from the argument value for string values. Por exemplo, se uma cadeia de caracteres tiver cinco caracteres e a precisão for 3, somente os três primeiros caracteres do valor da cadeia serão usados.For example, if a string has five characters and precision is 3, only the first three characters of the string value are used.

Para valores inteiros, precision é o número mínimo de dígitos impressos.For integer values, precision is the minimum number of digits printed.

Um asterisco (*) significa que a precisão é especificada pelo argumento associado na lista de argumentos, que deve ser um valor inteiro.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

É usado com os tipos de caracteres d, i, o, s, x, X ou u e cria valores shortint (h) ou longint (l).Is used with character types d, i, o, s, x, X, or u, and creates shortint (h) or longint (l) values.

Especificação de tipoType specification RepresentaRepresents
d ou id or i Inteiro assinadoSigned integer
oo Octal não assinadoUnsigned octal
ss Cadeia de caracteresString
uu Inteiro não assinadoUnsigned integer
x ou Xx or X Hexadecimal não assinadoUnsigned hexadecimal

Observação

Essas especificações de tipo são baseadas naquelas originalmente definidas para a função printf na biblioteca padrão C.These type specifications are based on the ones originally defined for the printf function in the C standard library. As especificações de tipo usadas na cadeia de caracteres de mensagem RAISERROR são mapeadas para tipos de dados Transact-SQLTransact-SQL, enquanto as especificações usadas em printf são mapeadas para tipos de dados de linguagem 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. As especificações de tipo usadas em printf não são compatíveis com RAISERROR quando o Transact-SQLTransact-SQL não tem um tipo de dados semelhante ao tipo de dados C associado.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 exemplo, não há suporte para a especificação de %p de ponteiros em RAISERROR porque o Transact-SQLTransact-SQL não tem um tipo de dados de ponteiro.For example, the %p specification for pointers is not supported in RAISERROR because Transact-SQLTransact-SQL does not have a pointer data type.

Observação

Para converter um valor no tipo de dados bigint do Transact-SQLTransact-SQL, especifique %I64d.To convert a value to the Transact-SQLTransact-SQL bigint data type, specify %I64d.

@local_variable
É uma variável de qualquer tipo de dados de caractere válido que contém uma cadeia de caracteres formatada da mesma maneira 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 deve ser char ou varchar ou poder ser convertido implicitamente nesses tipos de dados.@local_variable must be char or varchar, or be able to be implicitly converted to these data types.

severityseverity
É o nível de severidade definido pelo usuário associado a essa mensagem.Is the user-defined severity level associated with this message. Ao usar msg_id para gerar uma mensagem definida pelo usuário criada com sp_addmessage, a severidade especificada em RAISERROR substitui a severidade especificada em 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.

Níveis de severidade de 0 a 18 podem ser especificados por qualquer usuário.Severity levels from 0 through 18 can be specified by any user. Níveis de severidade de 19 a 25 podem ser especificados apenas por membros da função de servidor fixa sysadmin ou por usuários com permissões ALTER TRACE.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 níveis de severidade de 19 a 25, a opção WITH LOG é obrigatória.For severity levels from 19 through 25, the WITH LOG option is required. Níveis de severidade menores que 0 são interpretados como 0.Severity levels less than 0 are interpreted as 0. Níveis de severidade maiores que 25 são interpretados como 25.Severity levels greater than 25 are interpreted as 25.

Cuidado

Níveis de severidade de 20 a 25 são considerados fatais.Severity levels from 20 through 25 are considered fatal. Se um nível de severidade fatal for encontrado, a conexão de cliente é encerrada depois de receber a mensagem, e o erro é registrado nos logs de erro e de aplicativo.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.

Você pode especificar -1 para retornar o valor de severidade associado ao erro, conforme mostrado no exemplo a seguir.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');  

Aqui está o conjunto de resultados.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
É um número inteiro de 0 a 255.Is an integer from 0 through 255. Os valores negativos usam 1 como padrão.Negative values default to 1. Valores maiores que 255 não devem ser usados.Values larger than 255 should not be used.

Se o mesmo erro definido pelo usuário for gerado em vários locais, o uso de um número de estado exclusivo para cada local pode ajudar a encontrar a seção de código que está gerando os erros.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
São os parâmetros usados na substituição de variáveis definidas em msg_str ou na mensagem que corresponde a msg_id.Are the parameters used in the substitution for variables defined in msg_str or the message corresponding to msg_id. Pode haver 0 ou mais parâmetros de substituição, mas o número total de parâmetros de substituição não pode exceder 20.There can be 0 or more substitution parameters, but the total number of substitution parameters cannot exceed 20. Cada parâmetro de substituição pode ser uma variável local ou um destes tipos de dados: tinyint, smallint, int, char, varchar, nchar, nvarchar, binary ou 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. Nenhum outro tipo de dados possui suporte.No other data types are supported.

opçãooption
É uma opção personalizada para o erro e pode ser um dos valores na tabela a seguir.Is a custom option for the error and can be one of the values in the following table.

ValorValue DescriçãoDescription
LOGLOG Registra o erro no log de erros e no log do aplicativo para a instância do MicrosoftMicrosoft SQL ServerSQL Server Mecanismo de Banco de DadosDatabase Engine.Logs the error in the error log and the application log for the instance of the MicrosoftMicrosoft SQL ServerSQL Server Mecanismo de Banco de DadosDatabase Engine. Os erros registrados no log de erros atualmente estão limitados a no máximo 440 bytes.Errors logged in the error log are currently limited to a maximum of 440 bytes. Somente um membro da função de servidor fixa sysadmin ou um usuário com permissões ALTER TRACE pode especificar WITH LOG.Only a member of the sysadmin fixed server role or a user with ALTER TRACE permissions can specify WITH LOG.

Aplica-se a:Applies to: SQL ServerSQL Server, Banco de Dados SQLSQL Database SQL ServerSQL Server, Banco de Dados SQLSQL Database
NOWAITNOWAIT Envia mensagens imediatamente ao cliente.Sends messages immediately to the client.

Aplica-se a:Applies to: SQL ServerSQL Server, Banco de Dados SQLSQL Database SQL ServerSQL Server, Banco de Dados SQLSQL Database
SETERRORSETERROR Define os valores de @@ERROR e ERROR_NUMBER como msg_id ou 50.000, independentemente do nível de severidade.Sets the @@ERROR and ERROR_NUMBER values to msg_id or 50000, regardless of the severity level.

Aplica-se a:Applies to: SQL ServerSQL Server, Banco de Dados SQLSQL Database SQL ServerSQL Server, Banco de Dados SQLSQL Database

RemarksRemarks

Os erros gerados por RAISERROR funcionam da mesma maneira que os erros gerados pelo código do Mecanismo de Banco de DadosDatabase Engine.The errors generated by RAISERROR operate the same as errors generated by the Mecanismo de Banco de DadosDatabase Engine code. Os valores especificados por RAISERROR são relatados pelas funções do sistema ERROR_LINE, ERROR_MESSAGE, ERROR_NUMBER, ERROR_PROCEDURE, ERROR_SEVERITY, ERROR_STATE e @@ERROR.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. Quando RAISERROR é executado com uma severidade de 11 ou mais em um bloco TRY, ele transfere o controle para o bloco CATCH associado.When RAISERROR is run with a severity of 11 or higher in a TRY block, it transfers control to the associated CATCH block. O erro será retornado ao chamador se RAISERROR for executado:The error is returned to the caller if RAISERROR is run:

  • Fora do escopo de qualquer bloco TRY.Outside the scope of any TRY block.

  • Com uma severidade de 10 ou menos em um bloco TRY.With a severity of 10 or lower in a TRY block.

  • Com uma severidade de 20 ou mais que encerra a conexão de banco de dados.With a severity of 20 or higher that terminates the database connection.

    Blocos CATCH podem usar RAISERROR para lançar novamente o erro que invocou o bloco CATCH usando funções de sistema como ERROR_NUMBER e ERROR_MESSAGE a fim de recuperar as informações de erro originais.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 é definido como 0 por padrão para mensagens com uma severidade de 1 a 10.@@ERROR is set to 0 by default for messages with a severity from 1 through 10.

    Quando msg_id especifica uma mensagem definida pelo usuário disponível na exibição do catálogo sys.messages, RAISERROR processa a mensagem da coluna de texto usando as mesmas regras que são aplicadas ao texto de uma mensagem definida pelo usuário especificada usando 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. O texto da mensagem definida pelo usuário pode conter especificações de conversão, e RAISERROR mapeará valores de argumento nas especificações de conversão.The user-defined message text can contain conversion specifications, and RAISERROR will map argument values into the conversion specifications. Use sp_addmessage para adicionar mensagens de erro definidas pelo usuário e sp_dropmessage para excluí-las.Use sp_addmessage to add user-defined error messages and sp_dropmessage to delete user-defined error messages.

    RAISERROR pode ser usado como uma alternativa para PRINT a fim de retornar mensagens para aplicativos de chamada.RAISERROR can be used as an alternative to PRINT to return messages to calling applications. RAISERROR dá suporte à substituição de caracteres de forma semelhante à funcionalidade da função printf na biblioteca padrão C, ao contrário da instrução PRINT do 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. A instrução PRINT não é afetada por blocos TRY, enquanto que a execução de RAISERROR com uma severidade de 11 a 19 em um bloco TRY e transfere o controle para o bloco CATCH associado.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 uma severidade de 10 ou menos para que RAISERROR retorne uma mensagem de um bloco TRY sem invocar o bloco 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, argumentos sucessivos substituem especificações de conversão sucessivas; o primeiro argumento substitui a primeira especificação de conversão, o segundo argumento substitui a segunda especificação de conversão e assim por diante.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 exemplo, na seguinte instrução RAISERROR, o primeiro argumento de N'number' substitui a primeira especificação de conversão de %s; e o segundo argumento de 5 substitui a segunda especificação de conversão de %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  

Se um asterisco (*) for especificado para a largura ou precisão de uma especificação de conversão, o valor a ser usado para elas é especificado como um valor de argumento inteiro.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. Nesse caso, uma especificação de conversão pode usar até três argumentos, um para a largura, outro para a precisão e outro para o valor de substituição.In this case, one conversion specification can use up to three arguments, one each for the width, precision, and substitution value.

Por exemplo, as duas instruções RAISERROR a seguir retornam a mesma cadeia de caracteres.For example, both of the following RAISERROR statements return the same string. Uma especifica os valores de largura e de precisão na lista de argumentos; a outra os especifica na especificação de conversão.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  

ExemplosExamples

A.A. Retornando informações de erro de um bloco CATCHReturning error information from a CATCH block

O exemplo de código a seguir mostra como usar o bloco RAISERROR dentro de um bloco TRY para fazer a execução saltar para o bloco CATCH associado.The following code example shows how to use RAISERROR inside a TRY block to cause execution to jump to the associated CATCH block. Também mostra como usar RAISERROR para retornar informações sobre o erro que invocou o bloco CATCH.It also shows how to use RAISERROR to return information about the error that invoked the CATCH block.

Observação

RAISERROR somente gera erros com estado de 1 a 127.RAISERROR only generates errors with state from 1 through 127. Como o Mecanismo de Banco de DadosDatabase Engine pode gerar erros com o estado 0, recomendamos que você verifique o estado de erro retornado por ERROR_STATE antes de passá-lo como um valor ao parâmetro de estado de RAISERROR.Because the Mecanismo de Banco de DadosDatabase 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. Criando uma mensagem ad hoc em sys.messagesCreating an ad hoc message in sys.messages

O exemplo a seguir mostra como gerar uma mensagem armazenada na exibição do catálogo sys.messages.The following example shows how to raise a message stored in the sys.messages catalog view. A mensagem foi adicionada à exibição do catálogo sys.messages usando o procedimento armazenado do sistema sp_addmessage como o número de mensagem 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. Usando uma variável local para fornecer o texto da mensagemUsing a local variable to supply the message text

O exemplo de código a seguir mostra como usar uma variável local para fornecer o texto da mensagem a uma instrução 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 TambémSee Also

Funções internas (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)