2013-03-08 8 views

答えて

4

名前で(例えば、テーブル、カラム、トリガー)データベースオブジェクトを見つける必要がある場合 - これを行いSQL Search呼ばFREEレッドゲートのツールを見ている - それは、文字列の任意の種類のためのデータベース全体を検索(s)。

enter image description here

enter image description here

それは任意のDBAやデータベース開発者のための素晴らしい必携ツールだ - 私はすでに、それは絶対に使用のいずれかの種類のために使用する無料です言及しませんでした?

2

ApexSQL Searchなどのツールを試すことができます。オブジェクト名を検索しますが、依存表/ビュー内の列の名前が異なる場合でも、依存オブジェクトのリストを検索します。

その他の解決方法は、システムビューやシステム機能を使用して必要なデータを取得することです。必要なデータを取得するには、sys.foreign_keys, sys.objects, sys.all_columnsを使用することをお勧めします。

2

テーブルスキーマの変更による影響を分析する必要があるときは、分析に次の手順を使用します。これは完全ではありませんが役に立つかもしれません!

  1. Sp_help [TableName]:これは、すべてのFOREIGN KEY制約を参照するのに役立ちます。私はまた、このテーブルをFOREIGNキーとして参照している他のテーブルも見つけることができます。
  2. Sp_depends [TableName]:これは、このテーブルを使用してプロシージャ、関数、およびビューを見つけるのに役立ちます。
  3. ブルートフォース方法:私はSQLジョブで特定のキーワードを確認するために別のシステムテーブルや関数を使用し、モジュールなど

FYI: のsp_help [テーブル名] でsp_depends [テーブル名]

select top 10 * from msdb.dbo.sysjobsteps where command like '%%' 

SELECT top 10 Name, OBJECT_DEFINITION(OBJECT_ID) 
FROM sys.procedures 
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%%' 

SELECT top 10 OBJECT_NAME(object_id), * 
FROM sys.sql_modules 
WHERE definition LIKE '%%' 
+0

sp_xxxは、一般的にsys.xxx関数の方が推奨されていません。この場合、sys.dm_sql_referencing_entities()。それでもsp_dependsは正しい方向に私を指していたので+1します。 –

+0

同様のSQL文がより完全だと思います(トリガー?):http://stackoverflow.com/a/30432937/1991614 foriegn keys tho – bitcoder

関連する問題