SQLテーブルの依存関係を表示できるスクリプトがありますが、依存関係のないテーブルのテーブル名を選択できるスクリプトはありません。依存関係のないSQLテーブル名の選択
理想的には、私は(下図のように)Qで始まるすべてのテーブル名を選択したいんやMSSQLには依存関係、すなわち
SELECT t.NAME AS TableName
FROM sys.Tables t
where t.Name LIKE 'Q%' and no dependencies!
SQLテーブルの依存関係を表示できるスクリプトがありますが、依存関係のないテーブルのテーブル名を選択できるスクリプトはありません。依存関係のないSQLテーブル名の選択
理想的には、私は(下図のように)Qで始まるすべてのテーブル名を選択したいんやMSSQLには依存関係、すなわち
SELECT t.NAME AS TableName
FROM sys.Tables t
where t.Name LIKE 'Q%' and no dependencies!
sys.sql_expression_dependenciesに参加し、参照されていないテーブルを取得してください。
SELECT t.NAME AS TableName
FROM sys.Tables t
LEFT JOIN sys.sql_expression_dependencies d ON d.referenced_id = t.object_id
WHERE t.Name LIKE 'Q%'
AND d.referenced_id IS NULL
これはうまくいった。ありがとう、ジェイミー! – fifthace
これはどうでしょう:あなたは左はずです
select * from INFORMATION_SCHEMA.TABLES T
where T.TABLE_NAME like 'Q%'
and not exists (
select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC
where TC.TABLE_NAME = T.TABLE_NAME
and TC.CONSTRAINT_TYPE = 'FOREIGN KEY' -- add conditions as needed
)
order by TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME
これは、すべてのテーブルと、依存関係を持つテーブルも提供します。 – fifthace
「依存関係」の意味ですか? –
私はMSSQLの依存関係(私は標準のSQL機能と推測していました)を参照しています:https://msdn.microsoft.com/en-us/library/ms190624.aspx – fifthace
@fithace。 。 。これはSQL Server Management Studioの機能です。私はそれが任意のトリガー、ストアドプロシージャ、ユーザー定義関数、ビュー、おそらく制約を指していると思います。私はドキュメントに言及したものが何をすべきかを説明していると思います: 'sys.sql_expression_dependencies'を使います。 –