- PR -

SQL SERVER T-SQLの%使い方について

投稿者投稿内容
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-05 20:49
例:
コード:
DECLARE @DBID INT;
SET @DBID = DB_ID();

DECLARE @DBNAME NVARCHAR(128);
SET @DBNAME = DB_NAME();

RAISERROR
    (N'The current database ID is:%d, the database name is: %s.',
    10, -- Severity.
    1, -- State.
    @DBID, -- First substitution argument.
    @DBNAME); -- Second substitution argument.
GO



この中の【%d】と【%s】はどういう定義でしょうか。
この使い方はわかりませんでした。

ちなみに、【%d】を【%a】とかに入れ替えてみたら、エラーが出ています。

ご教授ください。
_________________
yangjiayi
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2008-09-07 20:50
なぜ RAISERROR を調べないのですか??
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-08 09:09
引用:

こあらさんの書き込み (2008-09-07 20:50) より:
なぜ RAISERROR を調べないのですか??


通常、最初の引数が最初の変換指定を置き換え、2 番目の引数が 2 番目の変換指定を置き換えるというように、連続する引数が連続する変換指定を置き換えます。たとえば、次の RAISERROR ステートメントは、最初の引数 N'number' で最初の変換指定 %s を置き換え、2 番目の引数 5 で 2 番目の変換指定 %d を置き換えます。
_________________
yangjiayi
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-08 09:12
引用:

こあらさんの書き込み (2008-09-07 20:50) より:
なぜ RAISERROR を調べないのですか??


ですから、なぜ、【%d】と【%s】じゃないといけないのかを聞いています。
別に使い方を聞いていませんが…
_________________
yangjiayi
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2008-09-08 09:51
2000のBooks OnlineでRAISERRORのページを参照してみると、%の後の英字は型(というか書式?)を表していることが分かるはずです。
dは符号付整数、sは文字列と書いてあります。
aには何の意味も割り当てられていません。
そのような文字を使用したり、例えば%sのところに数値をぶち込んだりするとエラーになります。

ご提示の例で【%d】と【%s】を使用しているのは、その状況においてd,sを使用するのが型的に最も適しているからではないでしょうか。
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-08 09:57
引用:

かめたろさんの書き込み (2008-09-08 09:51) より:
2000のBooks OnlineでRAISERRORのページを参照してみると、%の後の英字は型(というか書式?)を表していることが分かるはずです。
dは符号付整数、sは文字列と書いてあります。
aには何の意味も割り当てられていません。
そのような文字を使用したり、例えば%sのところに数値をぶち込んだりするとエラーになります。

ご提示の例で【%d】と【%s】を使用しているのは、その状況においてd,sを使用するのが型的に最も適しているからではないでしょうか。


回答有難う御座います。
なるほどね、固定ということですね。
%の仕様ですね。

有難う御座います。解決しました。
よかったら、URLも貼ってください。あとで見ときます。
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2008-09-08 10:02
SQLServer2005のオンラインマニュアルです。
http://msdn.microsoft.com/ja-jp/library/ms178592(SQL.90).aspx

バージョン違いは、ご自分でお探しください。
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2008-09-08 10:22
引用:

この中の【%d】と【%s】はどういう定義でしょうか。
この使い方はわかりませんでした。

ちなみに、【%d】を【%a】とかに入れ替えてみたら、エラーが出ています。


ですから、なぜ、【%d】と【%s】じゃないといけないのかを聞いています。
別に使い方を聞いていませんが…



まさにRAISERRORのフラグの使い方を聞かれているようにしか読めませんでした。
私には、ココに書いてあることより詳しいことは説明できそうにありません。
http://technet.microsoft.com/ja-jp/library/ms178592.aspx

スレ汚しすみませんでした。

スキルアップ/キャリアアップ(JOB@IT)