dポイントプレゼントキャンペーン実施中!

こんにちは

SQLサーバー2000のシステムテーブルについて質問があります。

現在、DB内の各テーブルがどのファイルグループに属し、
どの物理ファイルがどのファイルグループにリンクしているか、を調べています。
これらの情報を、システムテーブル(sysfilesなど)から一括で取得したいと思っていますが、どなたか取得方法をご存知の方がいれば教えて頂けませんでしょうか??

ちなみに、ひとつのファイルグループに対し、複数の物理ファイルが存在し、どの物理ファイルが現在有効として使用されているのか判断できかねています。

以上宜しくお願いします。

A 回答 (1件)

SQL Server 2000だと、ここまでじゃないでしょうか。



SELECT OBJECT_NAME(i.id),s.groupname
FROM dbo.sysfilegroups s
INNER JOIN dbo.sysindexes i ON i.groupid = s.groupid
WHERE i.indid in (0, 1)

SELECT s.groupname,f.name,f.filename
FROM dbo.sysfiles f
INNER JOIN dbo.sysfilegroups s ON s.groupid=f.groupid

ファイルグループ内のどのファイルが使われているかまではわからないと思います。
そのファイルが空かどうかはちょっと乱暴ですが、削除できるかどうかで確認はできます。
(実際Enterprise Managerで削除しようとすると、確認もしないでALTER DATABASE文を投げてくれています)
    • good
    • 0
この回答へのお礼

早速、ご回答していただきまして、ありがとうございますm(_ _)m

参考にさせていただきます!

お礼日時:2010/02/17 13:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!