出力ウィンドウに進捗メッセージを出力するために、重大度パラメータ0のRAISERRORを使用しているT-SQLストアドプロシージャがいくつかあります。私はすでにWITH NOWAITを使用して、メッセージがすぐに印刷されるようにしています。T-SQL RAISERROR WITH NOWAITのみ文字列全体ではなく1文字を出力する
しかし、文字列がRAISERRORに渡されても、最初の文字だけが画面に表示されます。例えば
:
RAISERROR('Profiles Complete', 0, 1) WITH NOWAIT
のみ画面に単一の 'P' を印刷します。
これがなぜ、どのように修正できるのか、誰か知っていますか?
おかげで非常に多く、
マーティン。変数が無い長さのcharとして宣言されている
でも続く 'WAITFOR'文で(ここでそれを再現することができません。バッチが完了したときではなく実行中の結果*を確実に確認する) –
エラーメッセージは、あなたの例で示したようにリテラル文字列ですか、それとも変数ですか?文字列をRAISERRORに '渡す'と言いました。長さを持たないcharまたはvarchar変数が宣言されている可能性があります。その場合、デフォルトで長さ1になりますので、エラーの最初の文字しか取得できません。 – Pondlife
等しく再現できません。どのようにprocを使用しているかを表示してください。たとえば、長さを持たないvarcharとして定義されているフィールドにエラーメッセージ文字列をキャッチしていますか? – kaj