[SQLServer]


【各テーブルのファイルグループを調べる】


調査で使ったので、メモ。

結構便利です。


--------------------------------------------------------------------------------------

SELECT Distinct
Tables.[name]
, Tables.[object_id]
, mas.[name]
, mas.[physical_name]
FROM sys.objects AS obj
LEFT OUTER JOIN sys.tables AS Tables
ON obj.object_id = Tables.object_id
LEFT OUTER JOIN sys.indexes AS part
ON Tables.object_id = part.object_id
LEFT OUTER JOIN sys.master_files AS mas
ON part.data_space_id = mas.data_space_id
WHERE mas.[database_id] = DB_ID() --今クエリを実行しているDBを指定
AND mas.[type] = '0' --0がデータ領域/1がログ
AND mas.[drop_lsn] IS NULL --ファイルが削除された場合のログシーケンス番号

                     --(削除されていないとNULLなのでNULLのものを抽出)
AND obj.type_desc = 'USER_TABLE'
AND Tables.[name] <> 'sysdiagrams'
ORDER BY Tables.[name]


--------------------------------------------------------------------------------------

AD