SQL Serverでは、sys.filegroups
にクエリを実行できます。 現在のデータベースのすべてのファイルグループのリストを返すシステムカタログビュー。
このビューには、ファイルグループである各データスペースの行が含まれています。つまり、結果にはファイルグループごとに1つの行が含まれます。
例1-WideWorldImportersデータベースの使用
これがデモンストレーションの例です。この例では、Microsoftが提供するWideWorldImportersサンプルデータベースを使用しています。
USE WideWorldImporters; SELECT data_space_id, name, type_desc FROM sys.filegroups;
結果:
+-----------------+-------------------+---------------------------------+ | data_space_id | name | type_desc | |-----------------+-------------------+---------------------------------| | 1 | PRIMARY | ROWS_FILEGROUP | | 2 | USERDATA | ROWS_FILEGROUP | | 3 | WWI_InMemory_Data | MEMORY_OPTIMIZED_DATA_FILEGROUP | +-----------------+-------------------+---------------------------------+
例2–データベースの切り替え
この例では、別のデータベースに切り替えて、クエリを再実行します。
USE Music; SELECT data_space_id, name, type_desc FROM sys.filegroups;
結果:
+-----------------+---------+----------------+ | data_space_id | name | type_desc | |-----------------+---------+----------------| | 1 | PRIMARY | ROWS_FILEGROUP | +-----------------+---------+----------------+
このデータベース(音楽と呼ばれる)には、ファイルグループが1つだけあります。
例3–すべての列を返す
前の例では、返す特定の列を選択しました。この例では、アスタリスク(*
)を使用しています )すべてを返却します。
SELECT * FROM sys.filegroups;
結果(垂直出力を使用):
name | PRIMARY data_space_id | 1 type | FG type_desc | ROWS_FILEGROUP is_default | 1 is_system | 0 filegroup_guid | NULL log_filegroup_id | NULL is_read_only | 0 is_autogrow_all_files | 0
この場合、垂直出力を使用して結果を垂直に表示しました(水平方向にスクロールする必要がないようにするため)。
例4–ファイルパスを含める
sys.database_files
に参加できます 物理ファイルパスを返すために表示します。
SELECT df.name AS [DB File Name], df.size/128 AS [File Size (MB)], fg.name AS [File Group Name], df.physical_name AS [File Path] FROM sys.database_files AS df INNER JOIN sys.filegroups AS fg ON df.data_space_id = fg.data_space_id;
結果(垂直出力を使用):
DB File Name | Music File Size (MB) | 8 File Group Name | PRIMARY File Path | /var/opt/mssql/data/Music.mdf
別のファイルグループを指定しない限り、PRIMARYファイルグループはデータファイルとログファイルが存在するデフォルトのファイルグループです。 SQLServerデータベースにファイルグループを追加して新しいファイルグループを作成する方法を参照してください。