sql >> データベース >  >> RDS >> Sqlserver

SQLServerの現在のデータベースのすべてのファイルグループを返す

    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データベースにファイルグループを追加して新しいファイルグループを作成する方法を参照してください。


    1. JDeveloper / SQL Developerがクレデンシャルを永続化するために使用している暗号化技術を知っている人はいますか?

    2. OracleSQLの連続または重複する日付範囲の開始日と終了日を1行に出力します

    3. SQLServerのエスケープ文字

    4. OracleのデフォルトのDATE形式