xam*_*mir 4 foreign-key sql-server metadata
在 SQL Server 中,我们如何找到所有没有以下任一项的表:
小智 12
SwapnilBhate 的回答将返回由外键引用的表。添加进一步LEFT JOIN
将排除这些:
SELECT tbl.name
FROM sys.tables AS tbl
LEFT JOIN sys.foreign_key_columns AS fKey
ON tbl.object_id = fKey.parent_object_id
LEFT JOIN sys.foreign_key_columns AS rKey
ON tbl.object_id = rKey.referenced_object_id
WHERE fKey.parent_object_id IS NULL
AND rKey.referenced_object_id IS NULL;
Run Code Online (Sandbox Code Playgroud)
您可以使用该sp_fkeys
过程来获取逻辑外键信息。但限制是您必须通过将表名作为输入参数来执行。更多信息可以在下面的 MSDN 库中找到。
或者,您可以使用以下查询从 sys.tables 获取所有表,并检查 sys.foreign_key_columns 中是否存在相同的表 object_id。
SELECT tbl.name
FROM sys.tables AS tbl
LEFT JOIN sys.foreign_key_columns AS fKey
ON tbl.object_id = fKey.parent_object_id
WHERE fKey.parent_object_id IS NULL
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5825 次 |
最近记录: |