2011-11-18 13 views
1

私は、SQLデータベースストアドプロシージャには、ミスペルト(したがって存在しない)sqオブジェクトがあることを知っています。この文字列のデータベースに格納されているすべてのprocの本体を検索する最良の方法は何でしょうか?SQL Serverストアドプロックスの(misspelt)オブジェクトへの参照を見つけよう

これはビジュアルスタジオのすべての参照を見つけるのに相当するので非常に便利です。

Serverは、データベース内のすべてのストアドprocsのための単一のスクリプトを生成し、そのを検索することができ、2005年

多くのおかげ

答えて

0

使用この:

SELECT 
    OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id), o.type_desc 
    FROM sys.sql_modules  m 
     INNER JOIN sys.objects o ON m.object_id=o.object_id 
    WHERE m.definition like '%whatever%' 

それはあなたの「何」の文字列のために、ストアドプロシージャ、関数やビューを検索します。ここで

は、最も単純なバージョン(結果からオブジェクト型を排除)である:

SELECT 
    OBJECT_SCHEMA_NAME(m.object_id) + '.' + OBJECT_NAME(m.object_id) 
    FROM sys.sql_modules m 
    WHERE m.definition like '%whatever%' 
0

SQL Serverのです。

右など、INFORMATION_SCHEMA.ROUTINESをチェックする参加などがあり、他の方法を、databseをクリックし、「スクリプトの生成」に進みます....そこからかなり明白でなければなりません...

+0

私は、SQL Serverと非常にナイーブに聞こえるが、私はそれがストアドプロシージャのオブジェクト名ではなく、保存された本体を得るだろうと思いました結果の出力にprocs? – dotnetdev

+0

いいえ、すべての格納されたprocs(create procコマンドとして)を1つのdocに 'スクリプト化'することができます。私はそれをバックアップするための追加の方法として、私の格納されたすべてのprocsのための 'Build Script'を生成するために使用します。 – CatchingMonkey

0
SELECT name 
FROM sys.procedures 
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%YourTableName%' 

sys.sql_modulesに渡します。

関連する問題