SQL Server – 列出没有主键的所有表

是否有可能产生一个指定的数据库中没有主键的所有表的列表?

这是SQL Server 2005。

这真的属于StackOverflow而不是ServerFault,不是吗?

无论如何,我发现几年前发布的这个脚本: 列出没有主键的所有表 。 它适用于SQL 2000+。

哎呀! 信息模式视图是丑陋的。

如果您的数据库是2005年,那么您应该使用MSbuild议的目录视图

这是我的解决scheme:

SELECT * from sys.tables WHERE object_id not in (SELECT object_id from sys.indexes WHERE is_primary_key=1)