ま、管理する立場として、変なテーブルをつくってないかな?といったことを確認する必要がでてきたとき
いろいろありますよーということで・・・
主キーのないテーブルをさらしあげるSQL文
次のクエリの <database_name> を有効なデータベース名に置き換えてから、クエリを実行します。
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0
ORDER BY schema_name, table_name;
GO
クラスタ化インデックスを持たないテーブルをさらしあげるSQL文
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name, name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id,'TableHasClustIndex') = 0
ORDER BY schema_id, name;
GO
インデックスをインデックスを持たないテーブルをさらしあげるSQL文
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id,'IsIndexed') = 0
ORDER BY schema_name, table_name;
GO
その他、お宝満載のページ
SQL Server システム カタログに対するクエリに関してよく寄せられる質問
http://msdn.microsoft.com/ja-jp/library/ms345522.aspx#_FAQ6
うーん。ものすごいお宝なのに・・・・
こんなタイトルでいいのかな・・・