これが構文またはタイプミスであることは間違いありません...しかし、sys.dm_sql_referencing_entitiesに親テーブルを照会すると、結果がゼロになります。エラーはなく、結果はありません。
USE [source];
GO
SELECT *
FROM sys.dm_sql_referencing_entities ('[Test].[USERS]', 'OBJECT');
GO
SSMSから依存関係を表示すると、次のようになります。
これまで使ったことがないので、これがどのように機能するのか、何を返すのか誤解しているのではないでしょうか。 SUBSCRIPTIONSテーブルに対しても試しましたが、同じ結果です...何もありません。
[〜#〜] bol [〜#〜] によると:
テーブルは、計算列、CHECK制約、またはDEFAULT制約の定義で、Transact-SQLモジュール、ユーザー定義型、またはXMLスキーマコレクションを参照する場合にのみ、参照エンティティとして追跡されます。
外部キーの関係は、このDMVには表示されません。
参照/参照エンティティ関数は、オブジェクト、列などが直接参照されるインスタンスを返します(通常、ストアドプロシージャなどの他のオブジェクトでは、 Markにはドキュメントの完全なリストがあります )。
これらの関数は、外部キーカタログビューから取得できる外部キーの依存関係を分析するためのものではありません。この単純なクエリは、すべてのテーブルがdbo
スキーマにあることを前提としていますが、それ以外の場合にそれらを具体化するには、sys.schemas
に結合を追加する必要があります。
SELECT 'FK points from ', f.name, ' to ', t.name
FROM sys.foreign_keys AS fk
INNER JOIN sys.objects AS f
ON fk.parent_object_id = f.[object_id]
INNER JOIN sys.objects AS t
ON fk.referenced_object_id = t.[object_id];
テーブルを参照するオブジェクトを作成すると、質問のクエリは結果を返します。例:
CREATE VIEW [Test].MyView_DeleteMe
AS
SELECT * FROM [Test].Users;