2011-09-07 8 views
5

私のデータベース上のすべてのストアドプロシージャを検索するだけで、その名前に "item"が含まれているプロシージャを探す必要があります。何か案は?名前でストアドプロシージャを検索するには?

私はこれで周りいじってきたが、それはまだかなりありません。

SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%' 
+0

@Aaron、はい、私はROUTINE_NAMEを意味し、私は私が提案することは時代遅れとスーパーより良い代替手段を割譲かもしれないことを認識していませんでした。私は2年前にこれをやっていましたが、それはまだ適切だと思っていました。私は私のコメントを削除します。 –

+1

@Martinの答えをご覧ください。 *定義*に "item"が含まれているものを望むなら、 'WHERE OBJECT_DEFINITION([object_id])LIKE '%item%';'を使います。そしてsyscommentsを使わないでください。それはもはや2000年ではありません。 :-) –

+0

[名前でストアドプロシージャを検索]の可能な複製(http://stackoverflow.com/questions/3574244/find-stored-procedure-by-name) – nathanchere

答えて

4

に文字列「アイテム」を含むものを見つけるために。

select schema_name(schema_id) as [schema], 
     name 
from sys.procedures 
where name like '%Item%' 
2

Thisもこの問題についてお手伝いします。また、照合順序が異なるデータベースがある場合にも機能します。また、プロシージャ名を正確に渡すか、その名前の一部を渡すことでプロシージャを見つけることができます。

2

あなたは、Server 2008の新しいクエリを使用することができます。

use dbName 
go 

print object_definition(object_id('storedProcedureName')) 

あなたが手続きの内容を取得します。

1

SQLでは、%と_のワイルドカードしか使用できません。より強力な検索をご希望の場合はSchemaCrawlerをご利用ください。 SchemaCrawlerは、名前に一致する正規表現を使用してルーチンを検索できます。正規表現を使用してルーチン定義内を検索することもできます。

Sualeh Fatehi、SchemaCrawlerは

関連する問題