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

適用対象: ○SQL Server (2008 以降)○Azure SQL Database○Azure SQL Data Warehouse ○Parallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

エラー メッセージを生成し、セッションのエラー処理を開始します。Generates an error message and initiates error processing for the session. RAISERROR では、sys.messages カタログ ビューに格納されているユーザー定義のメッセージを参照することまたは、メッセージを動的に作成できます。RAISERROR can either reference a user-defined message stored in the sys.messages catalog view or build a message dynamically. メッセージは、サーバー エラー メッセージとして、呼び出し元のアプリケーションまたは関連する TRY...CATCH 構造の 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. 新しいアプリケーションを使用する必要がありますスロー代わりにします。New applications should use THROW instead.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

-- 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 ] ]  

引数Arguments

msg_idmsg_id
ユーザー定義エラー メッセージ番号は、sp_addmessage を使用して、sys.messages カタログ ビューに格納されます。Is a user-defined error message number stored in the sys.messages catalog view using sp_addmessage. ユーザー定義エラー メッセージのエラー番号は、必ず 50000 より大きくなります。Error numbers for user-defined error messages should be greater than 50000. ときにmsg_idが指定されていない、RAISERROR はエラー番号 50000 のエラー メッセージを発生させます。When msg_id is not specified, RAISERROR raises an error message with an error number of 50000.

msg_strmsg_str
書式設定を含むユーザー定義メッセージをに似ていますが、 printf C 標準ライブラリ内の関数。Is a user-defined message with formatting similar to the printf function in the C standard library. エラー メッセージの長さは最大 2,047 文字です。The error message can have a maximum of 2,047 characters. メッセージの文字数が 2,048 文字を超えると、2,044 文字までだけ表示され、メッセージが途中で切れていることを示す省略記号が追加されます。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. 内部的な記憶動作が原因で、書式引数は出力として表示されるより多くの文字を使用することに注意してください。Note that substitution parameters consume more characters than the output shows because of internal storage behavior. 置換パラメーターなど、 %d 2 の値が割り当てられる実際に生成されるメッセージ文字列内の 1 つの文字が、内部的にも記憶域の 3 つの追加の文字を占有します。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. この記憶領域の要件により、メッセージ出力で使用できる文字数は少なくなります。This storage requirement decreases the number of available characters for message output.

ときにmsg_strを指定すると、RAISERROR はエラー番号 50000 のエラー メッセージを発生させます。When msg_str is specified, RAISERROR raises an error message with an error number of 50000.

msg_str省略可能な組み込みの変換が指定された文字の文字列を指定します。msg_str is a string of characters with optional embedded conversion specifications. 各変換指定子は、引数リスト内の値を書式化およびフィールド内の変換指定の場所に配置する方法を定義します。 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. 変換指定の形式は、Conversion specifications have this format:

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

使用できるパラメーター msg_strは。The parameters that can be used in msg_str are:

flagflag

置換された値の間隔と配置を決めるコードです。Is a code that determines the spacing and justification of the substituted value.

コードCode プレフィックスまたは配置Prefix or justification DescriptionDescription
- (マイナス)- (minus) 左寄せLeft-justified 指定されたフィールド幅内で引数の値を左寄せします。Left-justify the argument value within the given field width.
+ (プラス)+ (plus) 符号プレフィックスSign prefix 引数の値が符号付きの場合に、プラス記号 (+) またはマイナス記号 (-) を先頭に付けます。Preface the argument value with a plus (+) or minus (-) if the value is of a signed type.
0 (ゼロ)0 (zero) 0 埋めZero padding 幅の最小値になるまで、出力の先頭に 0 を付けます。Preface the output with zeros until the minimum width is reached. 0 とマイナス記号 (-) が付いている場合は、0 は無視されます。When 0 and the minus sign (-) appear, 0 is ignored.
# (番号)# (number) 16 進型の x または X に対する 0x プレフィックス0x prefix for hexadecimal type of x or X 番号記号 (#) フラグは、o、x、または X 形式で使われる場合、0 以外の値の先頭に、それぞれ 0、0x、0X を付けます。When used with the o, x, or X format, the number sign (#) flag prefaces any nonzero value with 0, 0x, or 0X, respectively. d、i、または u に番号記号 (#) フラグが付いている場合、フラグは無視されます。When d, i, or u are prefaced by the number sign (#) flag, the flag is ignored.
' ' (空白)' ' (blank) スペース埋めSpace padding 出力値が符号付きで正の値の場合に、先頭に空白を付けます。Preface the output value with blank spaces if the value is signed and positive. プラス記号 (+) フラグが指定される場合は、この空白は無視されます。This is ignored when included with the plus sign (+) flag.

widthwidth

引数値が配置されるフィールドの幅の最小値を定義する整数です。Is an integer that defines the minimum width for the field into which the argument value is placed. 引数の値の長さが同じかまたはよりも長いかどうか、埋め込みなしで、値を出力します。If the length of the argument value is equal to or longer than width, the value is printed with no padding. 値がよりも短い場合、値が指定された長さに埋め込まれたです。If the value is shorter than width, the value is padded to the length specified in width.

アスタリスク (*) は、width が引数リスト内の関連する引数によって指定されることを意味します。この引数は整数値である必要があります。An asterisk (*) means that the width is specified by the associated argument in the argument list, which must be an integer value.

有効桁数 (precision)precision

文字列の値の引数値から取得される最大文字数です。Is the maximum number of characters taken from the argument value for string values. たとえば、文字列が 5 文字で、precision が 3 の場合、文字列の値の最初の 3 文字のみが使用されます。For example, if a string has five characters and precision is 3, only the first three characters of the string value are used.

整数値の場合は、精度印刷桁の数字の最小数です。For integer values, precision is the minimum number of digits printed.

アスタリスク (*) は、precision が引数のリスト内の関連する引数により指定されることを意味します。この引数は整数値である必要があります。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

文字の種類の d で使用される i、o、s、x、X、または u を作成およびshortint (h) またはlongint (l) の値。Is used with character types d, i, o, s, x, X, or u, and creates shortint (h) or longint (l) values.

型の仕様Type specification 表しますRepresents
d または id or i 符号付き整数Signed integer
oo 符号なし 8 進数Unsigned octal
ss 文字列String
uu 符号なし整数Unsigned integer
x または Xx or X 符号なし 16 進数Unsigned hexadecimal

注意

に対して定義されているに基づいてこれらの種類の仕様、 printf C 標準ライブラリ内の関数。These type specifications are based on the ones originally defined for the printf function in the C standard library. RAISERROR メッセージ文字列マップで使用されるタイプ仕様 Transact-SQLTransact-SQLで使用される仕様の中に、データ型printf 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. 使用される仕様の入力printf RAISERROR でサポートされていないときに Transact-SQLTransact-SQLC データ型が関連付けられているようなデータ型はありません。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. たとえば、 %pために、ポインターの仕様は RAISERROR でサポートされていません Transact-SQLTransact-SQLポインターのデータ型はありません。For example, the %p specification for pointers is not supported in RAISERROR because Transact-SQLTransact-SQL does not have a pointer data type.

注意

値を変換する、 Transact-SQLTransact-SQL bigintデータ型、 %i64dです。To convert a value to the Transact-SQLTransact-SQLbigint data type, specify %I64d.

@ local_variable@ local_variable
任意の有効な文字データ型と同じ方法で書式設定文字列を含む変数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*する必要がありますcharまたはvarchar、これらのデータ型に暗黙的に変換することができるか。 **@local_variable must be char or varchar, or be able to be implicitly converted to these data types.

severityseverity
このメッセージに関連付けられたユーザー定義重大度レベルです。Is the user-defined severity level associated with this message. 使用する場合msg_id RAISERROR で指定された重大度を sp_addmessage を使用して作成されたユーザー定義のメッセージを発生させるには、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.

0 から 18 までの重大度レベルはどのユーザーでも指定できます。Severity levels from 0 through 18 can be specified by any user. 19 から 25 までの重大度レベルは、固定サーバー ロールまたはユーザー ALTER TRACE 権限を持つ、sysadmin のメンバーでのみ指定できます。Severity levels from 19 through 25 can only be specified by members of the sysadmin fixed server role or users with ALTER TRACE permissions. 重大度レベル 19 から 25 までは、WITH LOG オプションを必要とします。For severity levels from 19 through 25, the WITH LOG option is required. 0 より小さい重大度レベルは 0 と解釈されます。Severity levels less than 0 are interpreted as 0. 25 より大きい重大度レベルは 25 と解釈されます。Severity levels greater than 25 are interpreted as 25.

注意事項

重大度レベル 20 から 25 までは、致命的と見なされます。Severity levels from 20 through 25 are considered fatal. この致命的な重大度レベルが発生した場合は、メッセージを受け取った後でクライアントの接続が終了し、エラーがエラー ログおよびアプリケーション ログに記録されます。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.

次の例に示すように、エラーに関連付けられた重大度の値を返すには -1 を指定できます。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');  

以下に結果セットを示します。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
0 ~ 255 の整数です。Is an integer from 0 through 255. 負の値を 1 に既定値です。Negative values default to 1. 255 より大きい値には使用できません。Values larger than 255 should not be used.

同じユーザー定義エラーが複数の場所で発生する場合、それぞれの場所に対して一意の状態番号を使用すると、コードのどのセクションでエラーが発生しているのかを探すのに役立ちます。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
定義された変数の代入に使用されるパラメーターは、 msg_strまたはに対応するメッセージmsg_idです。Are the parameters used in the substitution for variables defined in msg_str or the message corresponding to msg_id. 書式引数は指定しなくても、複数指定してもかまいませんが、合計で 20 を超えることはできません。There can be 0 or more substitution parameters, but the total number of substitution parameters cannot exceed 20. 各置換パラメーターには、ローカル変数、またはこれらのデータ型のいずれかを指定できます: tinyintsmallintintcharvarcharncharnvarcharバイナリ、または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 other data types are supported.

オプションoption
エラーのカスタム オプションです。次の表のいずれかの値をとります。Is a custom option for the error and can be one of the values in the following table.

[値]Value DescriptionDescription
LOGLOG エラー ログとアプリケーション ログのインスタンスに、エラーがログ記録、 MicrosoftMicrosoft SQL ServerSQL Server データベース エンジンDatabase Engineです。Logs the error in the error log and the application log for the instance of the MicrosoftMicrosoft SQL ServerSQL Server データベース エンジンDatabase Engine. エラー ログに記録されるエラーは、現在のところ最高 440 バイトに制限されています。Errors logged in the error log are currently limited to a maximum of 440 bytes. Sysadmin 固定サーバー ロールまたは ALTER TRACE 権限を持つユーザーのメンバーだけでは、WITH LOG を指定できます。Only a member of the sysadmin fixed server role or a user with ALTER TRACE permissions can specify WITH LOG.

適用対象:Applies to: SQL ServerSQL Server, SQL データベースSQL Database SQL ServerSQL Server, SQL データベースSQL Database
NOWAITNOWAIT クライアントにすぐにメッセージを送信します。Sends messages immediately to the client.

適用対象:Applies to: SQL ServerSQL Server, SQL データベースSQL Database SQL ServerSQL Server, SQL データベースSQL Database
SETERRORSETERROR セット、@@ERRORおよび ERROR_NUMBER 値にmsg_idまたは重大度レベルに関係なく、50000 します。Sets the @@ERROR and ERROR_NUMBER values to msg_id or 50000, regardless of the severity level.

適用対象:Applies to: SQL ServerSQL Server, SQL データベースSQL Database SQL ServerSQL Server, SQL データベースSQL Database

解説Remarks

RAISERROR によって生成されたエラーは、 データベース エンジンDatabase Engineのコードによって生成されたエラーと同様に機能します。The errors generated by RAISERROR operate the same as errors generated by the データベース エンジンDatabase Engine code. RAISERROR で指定された値が報告されますで ERROR_LINE、ERROR_MESSAGE、ERROR_NUMBER、ERROR_PROCEDURE、ERROR_SEVERITY、ERROR_STATE、および @@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. TRY ブロックで 11 以上の重大度で RAISERROR を実行すると、RAISERROR は関連する CATCH ブロックに制御を渡します。When RAISERROR is run with a severity of 11 or higher in a TRY block, it transfers control to the associated CATCH block. RAISERROR が次の条件で実行されると、呼び出し元にエラーが返されます。The error is returned to the caller if RAISERROR is run:

  • TRY ブロックのスコープの外で実行された場合Outside the scope of any TRY block.

  • TRY ブロックで 10 以下の重大度で実行された場合With a severity of 10 or lower in a TRY block.

  • データベース接続を終了させる 20 以上の重大度で実行された場合With a severity of 20 or higher that terminates the database connection.

    CATCH ブロックは、ERROR_NUMBER や ERROR_MESSAGE などのシステム関数を使用して CATCH ブロックを呼び出したエラーを、RAISERROR を使用して再度スローし、元のエラー情報を取得できます。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 1 から 10 までの重大度がメッセージの既定で 0 に設定します。@@ERROR is set to 0 by default for messages with a severity from 1 through 10.

    ときにmsg_id sys.messages カタログ ビュー、RAISERROR のプロセスから利用可能なユーザー定義のメッセージが指定されたユーザー定義メッセージのテキストに適用されると、同じ規則を使用して、テキスト列からメッセージを指定します。使用して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. ユーザー定義メッセージのテキストには変換指定を含めることができ、RAISERROR は引数値を変換指定にマップします。The user-defined message text can contain conversion specifications, and RAISERROR will map argument values into the conversion specifications. ユーザー定義エラー メッセージを削除するには、ユーザー定義エラー メッセージと sp_dropmessage を追加するには、sp_addmessage を使用します。Use sp_addmessage to add user-defined error messages and sp_dropmessage to delete user-defined error messages.

    RAISERROR は、呼び出し元のアプリケーションにメッセージを返すために、PRINT の代わりに使用することができます。RAISERROR can be used as an alternative to PRINT to return messages to calling applications. RAISERROR の機能に類似した代替文字をサポートしている、 printf 、C 標準ライブラリ内の関数間、 Transact-SQLTransact-SQL PRINT ステートメントは返しません。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. RAISERROR が TRY ブロックで 11 から 19 の重大度で実行され、関連する CATCH ブロックに制御を渡す間、PRINT ステートメントは TRY ブロックの影響を受けません。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. CATCH ブロックを呼び出さずに TRY ブロックからのメッセージを返すには、重大度を 10 以下に指定して RAISERROR を使用します。Specify a severity of 10 or lower to use RAISERROR to return a message from a TRY block without invoking the CATCH block.

    通常、最初の引数が最初の変換指定を置き換え、2 番目の引数が 2 番目の変換指定を置き換えるというように、連続する引数が連続する変換指定を置き換えます。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. たとえば、次のRAISERRORステートメントでは、最初の引数N'number'の最初の変換指定を置き換える%s; および 2 番目の引数の5の 2 番目の変換指定を置き換えます%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  

変換指定の width または precision にアスタリスク (*) が指定されている場合、width または precision に使用される値は整数の引数値として指定されます。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. この場合、1 つの変換指定で、width、precision、および置換値に対して 1 つずつ、最大 3 つまでの引数を使用できます。In this case, one conversion specification can use up to three arguments, one each for the width, precision, and substitution value.

たとえば、どちらも、次のRAISERRORステートメントが同じ文字列を返します。For example, both of the following RAISERROR statements return the same string. 一方のステートメントでは引数リストで width と precision の値を指定し、もう一方のステートメントでは変換指定でこれらを指定しています。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  

使用例Examples

A.A. CATCH ブロックからエラー情報を返すReturning error information from a CATCH block

次のコード例は、使用する方法を示しています。RAISERROR内、TRY実行を、関連付けられている移動が発生するブロックCATCHブロックします。The following code example shows how to use RAISERROR inside a TRY block to cause execution to jump to the associated CATCH block. 使用する方法も示しますRAISERRORを呼び出したエラーに関する情報を返す、CATCHブロックします。It also shows how to use RAISERROR to return information about the error that invoked the CATCH block.

注意

RAISERROR では、1 から 127 までの状態番号のエラーだけが生成されます。RAISERROR only generates errors with state from 1 through 127. データベース エンジンDatabase Engineでは状態番号 0 のエラーが発生する場合があるため、ERROR_STATE によって返されるエラーの状態番号は、RAISERROR の state パラメーターの値として渡す前に確認することをお勧めします。Because the データベース エンジンDatabase 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. sys.messages 内でアドホック メッセージを作成するCreating an ad hoc message in sys.messages

次の例では、sys.messages カタログ ビューに格納されているメッセージを生成する方法を示します。The following example shows how to raise a message stored in the sys.messages catalog view. 使用して、メッセージが sys.messages カタログ ビューに追加された、sp_addmessageメッセージ番号としてのシステム ストアド プロシージャ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. ローカル変数を使用してメッセージ テキストを指定するUsing a local variable to supply the message text

次のコード例は、ローカル変数を使用してメッセージ テキストを指定する方法を示しています、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  

参照See Also

組み込み関数 (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 と #41 です。 sp_addmessage (Transact-SQL)
sp_dropmessage (です。TRANSACT-SQL と #41 です。 sp_dropmessage (Transact-SQL)
sys.messages (Transact-SQL) sys.messages (Transact-SQL)
xp_logevent (です。TRANSACT-SQL と #41 です。 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)