我可以使用
获取具有给定表名的外键约束列表EXEC sp_fkeys 'TableName'
但我需要获取所有没有外键约束的表的列表。
提前致谢。
答案 0 :(得分:1)
下面的查询为您提供了所有没有外键的表
SELECT s.name [Schema], t.name [Table]
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE NOT EXISTS (SELECT
1
FROM sys.foreign_keys AS fk
WHERE fk.parent_object_id = t.[object_id]);
此逻辑的灵感来自于this site发布的一组相关查询。
答案 1 :(得分:0)
这是使用EXCEPT的另一个选项。
select name
from sys.tables
except
(
select OBJECT_NAME(parent_object_id)
from sys.foreign_keys
)
order by name