1

SQL Server 2012 のデータベースの 1 つ (データベース A) が間もなく廃止されます。私は、データベース A をデータ ソースとして使用するデータベース B のすべてのビューと StoredProc を分析しようとしています。この情報を取得するクエリを作成するにはどうすればよいですか。ありがとう

4

2 に答える 2

2

以下を使用して、SQL Server 2008 でオブジェクトとその依存関係を取得します。

select *
from (select referenced_database_name, o.name as ViewName, ed.referenced_entity_name as TableName
      from sys.sql_expression_dependencies ed join
           sys.objects o
           on ed.referencing_id = o.object_id
      where referenced_database_name is not null
     ) vdep

フィルタを追加して、関心のあるデータベースまたは関心のないデータベースを除外できます。

where referenced_database_name = 'A'
于 2013-04-03T15:38:18.320 に答える
0

非常に簡単な方法は、プロシージャ テキストをクエリすることです。

select p.name 
from sys.procedures p 
    inner join sys.syscomments c ON (p.object_id = c.id)
where c.text like '%database.%' or c.text like '%[database].%'

同じクエリを同様に実行できますsys.views。データベース名と私が提供した単純なアルゴリズムによっては、非常に良い結果が得られる場合とそうでない場合があります。

sp_depends がデータベースで機能するかどうかはわかりませんが、データベースに対してもクエリを実行できる依存関係があると思いますが、その方法はわかりません。

于 2013-04-03T15:34:18.680 に答える