私はsp_helptext
の私の結果を検索クエリを構築するが、午前時々sp_helptext
出力する。これに代えてSQL Serverのsp_helptextが異なる結果を返すのはなぜですか?
:
は私の優先リターンを得るためにとにかくあり毎回sp_helptext
の形式ですか?
そして、画像1が発生する原因となっていますか?
私はsp_helptext
の私の結果を検索クエリを構築するが、午前時々sp_helptext
出力する。これに代えてSQL Serverのsp_helptextが異なる結果を返すのはなぜですか?
:
は私の優先リターンを得るためにとにかくあり毎回sp_helptext
の形式ですか?
そして、画像1が発生する原因となっていますか?
sp_helptext
は、内蔵のいくつかの意図的な癖、およびいくつかの「予期しない」行動を持っています。
私は、それを使用するほとんどの人が実際にはdocumentationを読んでいないので、それを引用符で囲みました。システム手続きに入ることなく、手続き自体の実際の定義を見ました。
私の代わりに、システムテーブルに格納された定義を使用する傾向がある:
SELECT definition
FROM sys.all_sql_modules S
WHERE OBJECT_NAME(S.object_id) = 'MySProc'
;
これは、一般的に私にいくつかの点でより一貫性のある結果が得られ、また、必要であれば、私はすぐに変更を行うことができます。 sp_helptextを使用すると、多くの人が出力を変数に格納してから変数の値を変更します。 sys.all_sql_modules
からストレートSELECT
で、あなただけの任意の変数の操作なしで直接返された値に必要な変更を行うことができます。
(ちなみに、ここではこの同じクエリがsp_helptext
自体に動作し、あなたがそれをやっているものと、あなたの定義に何が起こっているか理解しようとするために、その定義を見て歓迎しています。ちょうどあなたが誤っていないことを確認してくださいALTER
it ...)
「これはどうして起こったのですか」という質問には正確には答えられません。他の人の回答があなたに役立つことを願っています。その間に、システムテーブルを見て、おそらく彼らがあなたに実用的なソリューションを提供するかどうかを試すことができます。
幸運を祈る!
まず編集: あなたはSQLのバージョンに応じて、依存関係を見つけるために探している場合は、これを使用することができます:
[Referenced Tables]
--------------------
ServerName\InstanceName.DBName.TableName
ありがとう! DB1上のどのprocsがDB2上のテーブルに依存しているかを調べようとしています。 sp_helptextの使い方は(部分文字列を使用する場合)結果がイメージ2の場合のみです。DB2で照会されている実際のテーブル名のリストが必要です – Jacquespax
実際にデータベース間の依存関係を探していますか? I. DB1のSProc1はDB2のテーブルをクエリしますか? – 3BK
はい、各procの実際のテーブル名です。私のクエリは動作します... sp_helptextがうまくhahaを演奏する場合のみです(画像2のように) – Jacquespax
へようこそ:
は、連結された文字列を返します。スタックオーバーフロー。ソースコード、エラーメッセージ、およびその他のテキスト情報は、外部の画像ではなくインラインのプレーンテキストとして提供してください。テキストは検索可能で、再利用可能で、通常は読みやすくなります。また、技術を識別するためにタグを使用することを忘れないでください(このサイトはすべてのプログラミング言語をカバーしています)。 –
あなたはフォーマットすると言ったのですか? – TheGameiswar
私は質問が完全にはっきりしていないことに同意します。 Unixスタイルの改行がありますか?もしそうなら、Management Studioを構成する方法、出力を後処理する方法、または 'sp_helptext'自体を変更する方法を尋ねていますか? –