5

MSDNの例を読んだときraiserror

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

%sを指定するため にドキュメントを使用する理由N'number'、および -- 2 番目の引数%dを指定する5

MSDN は次のように書いています。

たとえば、次の RAISERROR ステートメントでは、N'number' の最初の引数が %s の最初の変換指定を置き換えます。5 の 2 番目の引数は、%d の 2 番目の変換指定を置き換えます。

私の質問は次のとおりです。どのように説明できますか? %a他の likeまたはを使用しないのはなぜですか。%b他のものはそれ%+aphaを置き換えることができます。意味のある理解を得たいだけです。

4

1 に答える 1

8

これは、パラメーターのデータ型を表します。

+--------------------+----------------------+
| Type specification |      Represents      |
+--------------------+----------------------+
| d or i             | Signed integer       |
| o                  | Unsigned octal       |
| s                  | String               |
| u                  | Unsigned integer     |
| x or X             | Unsigned hexadecimal |
+--------------------+----------------------+

N'number'nvarchar文字列リテラルです。したがって、%s指定子を取得します。また、リテラル5は符号付きインジケータであるため、 で表され%dます。

これらの指定子の理由について。これはRAISERRORトピックに記載されています

これらの型指定は、C 標準ライブラリのprintf関数に対して最初に定義されたものに基づいています。

于 2013-10-20T14:22:04.513 に答える