テーブルの外部キーを使用するツールを作成しましたが、ビューをサポートするように拡張したいと考えています。
1 に答える
2
SQL Server 2008 以降では、同じデータベース内の依存関係のみに関心があると仮定すると、次のクエリを使用して、各ビュー内で参照されるすべてのテーブル、ビュー、および関数を特定できます。
;WITH x AS
(
SELECT
v = QUOTENAME(OBJECT_SCHEMA_NAME(d.referencing_id))
+ '.' + QUOTENAME(OBJECT_NAME(d.referencing_id)),
t = QUOTENAME(OBJECT_SCHEMA_NAME(d.referenced_id))
+ '.' + QUOTENAME(OBJECT_NAME(d.referenced_id)),
td = o2.type_desc
FROM sys.sql_expression_dependencies AS d
INNER JOIN sys.objects AS o1
ON d.referencing_id = o1.[object_id]
INNER JOIN sys.objects AS o2
ON d.referenced_id = o2.[object_id]
WHERE o1.type_desc = 'VIEW'
)
SELECT [View] = v, Referenced_Object = t, [Type] = td
FROM x
GROUP BY v, t, td
ORDER BY v, t;
于 2012-04-19T01:13:50.047 に答える