ま、管理する立場として、変なテーブルをつくってないかな?といったことを確認する必要がでてきたとき
いろいろありますよーということで・・・

主キーのないテーブルをさらしあげる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

 

うーん。ものすごいお宝なのに・・・・
こんなタイトルでいいのかな・・・