• 締切済み

システムテーブルについて

こんにちは SQLサーバー2000のシステムテーブルについて質問があります。 現在、DB内の各テーブルがどのファイルグループに属し、 どの物理ファイルがどのファイルグループにリンクしているか、を調べています。 これらの情報を、システムテーブル(sysfilesなど)から一括で取得したいと思っていますが、どなたか取得方法をご存知の方がいれば教えて頂けませんでしょうか?? ちなみに、ひとつのファイルグループに対し、複数の物理ファイルが存在し、どの物理ファイルが現在有効として使用されているのか判断できかねています。 以上宜しくお願いします。

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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文を投げてくれています)

ebi_10_
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A