5
我们得到了500多个表,并且想要确定哪些表没有主键。因为在大型表上创建索引将有助于提高性能。SQL Server - 如何查找聚簇索引是否存在
所需命令 - 识别表,该表是堆(因为他们没有聚集索引)
问候
我们得到了500多个表,并且想要确定哪些表没有主键。因为在大型表上创建索引将有助于提高性能。SQL Server - 如何查找聚簇索引是否存在
所需命令 - 识别表,该表是堆(因为他们没有聚集索引)
问候
SELECT OBJECT_NAME(object_id)
FROM sys.indexes
WHERE index_id=0
AND OBJECTPROPERTY(object_id, 'IsUserTable') = 1
查找所有堆。这个问题与PK是否存在正交。一堆可以有一个非聚集PK和一个聚集索引不一定是PK。要找到没有PK的表格,你可以使用。
SELECT *
FROM sys.tables t
WHERE NOT EXISTS
(
SELECT *
FROM sys.indexes i
WHERE is_primary_key=1 AND i.object_id = t.object_id
)
PK可以是'CLUSTERED'或'NON-CLUSTERED'唯一索引。所以,你可以有PK但没有聚集索引的表。 –