5
500以上のテーブルがあり、どのテーブルにプライマリキーがないのかを特定したい。大きなテーブルにインデックスを作成すると、パフォーマンスが向上します。SQL Server - クラスタ化インデックスが存在するかどうかを調べる方法
必要なコマンド - (彼らはクラスタ化インデックスを持っていけないよう)HEAPSである
よろしく
500以上のテーブルがあり、どのテーブルにプライマリキーがないのかを特定したい。大きなテーブルにインデックスを作成すると、パフォーマンスが向上します。SQL Server - クラスタ化インデックスが存在するかどうかを調べる方法
必要なコマンド - (彼らはクラスタ化インデックスを持っていけないよう)HEAPSである
よろしく
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でテーブルを作成することはできますが、クラスタードインデックスは使用できません。 –