查找没有聚簇索引的表但在表上使用主键

时间:2013-02-26 14:38:49

标签: sql-server-2008 tsql

是否有一个脚本可以找到没有聚簇索引的表,但是它上面有Sql server 2008 r2的主键?请告诉我。

2 个答案:

答案 0 :(得分:2)

这样的事情:

SELECT
            so.name AS TableName,
            si.name AS IndexName,
            si.type_desc AS IndexType,
            si.is_primary_key
FROM
            sys.indexes si
            JOIN sys.tables so ON si.[object_id] = so.[object_id]
WHERE
            si.type IN (0, 2)
            AND si.is_primary_key=1
ORDER BY
            so.name

答案 1 :(得分:1)

select O.name
from sys.objects as O
  inner join sys.indexes as I1
    on O.object_id = I1.object_id
  inner join sys.indexes as I2
    on O.object_id = I2.object_id
where O.type = 'U' and         -- U = Table (user-defined)
      I1.type = 0 and          -- 0 = Heap
      I2.is_primary_key = 1

sys.objects (Transact-SQL)
sys.indexes (Transact-SQL)