データベースのプロパティを閲覧または変更する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

この記事では、SQL Server Management Studio または Transact-SQL を使って SQL Server でデータベースのプロパティを表示または変更する方法について説明します。 データベースのプロパティを変更すると、変更は直ちに有効になります。

推奨事項

  • AUTO_CLOSEONされると、sys.databasesのカタログビューやDATABASEPROPERTYEX関数の一部列がNULL返されます。なぜなら、データベースがデータを取得できないためです。 この問題を解決するには、データベースを開きます。

アクセス許可

データベースのプロパティを変更するには、データベース ALTER 権限が必要です。 データベースのプロパティを見るには、少なくとも 公開 固定データベースの役割のメンバーシップが必要です。

SQL Server Management Studio を使用します。

  1. オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. データベースを展開し、右クリックして表示し、プロパティを選択します。

  3. [データベースのプロパティ] ダイアログ ボックスで、任意のページを選択して、対応する情報を表示します。 たとえば、データおよびログ ファイルの情報を表示するには、 [ファイル] ページをクリックします。

Transact-SQL を使用する

Transact-SQL を使用すると、さまざまな方法でデータベースのプロパティを表示および変更できます。 データベースのプロパティを表示するには、 DATABASEPROPERTYEX 関数と sys.databases カタログビューを使用します。 データベースのプロパティを変更するには、環境の ALTER DATABASE 文のバージョンである ALTER DATABASE または ALTER DATABASE を使用します。 データベースのスコーププロパティを表示するには、 sys.database_scoped_configurations カタログビューをご利用ください。 データベースのスコーププロパティを変更するには、 ALTER DATABASE SCOPED CONFIGURATION 文を使用します。

DATABASEPROPERTYEX関数でデータベースのプロパティを表示

  1. データベース エンジンに接続し、そのプロパティを表示したいデータベースに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、DATABASEPROPERTYEXシステム関数を使ってAUTO_SHRINKデータベース内のAdventureWorks2025データベースオプションの状態を返します。 リターン値が1ならオプションが ONに設定され、リターン値が0ならオプションが OFFに設定されていることを意味します。

    SELECT DATABASEPROPERTYEX('AdventureWorks2025', 'IsAutoShrink');
    

クエリでデータベースのプロパティを見る sys.databases

  1. データベース エンジンに接続し、そのプロパティを表示したいデータベースに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、 sys.databases カタログ ビューをクエリして、 AdventureWorks2025 データベースのいくつかのプロパティを表示します。 この例では、データベースの ID 番号 (database_id)、データベースが読み取り専用か読み取り/書き込み可能かの情報 (is_read_only)、データベースの照合順序 (collation_name)、データベースの互換性レベル (compatibility_level) を取得します。

    SELECT database_id,
           is_read_only,
           collation_name,
           compatibility_level
    FROM sys.databases
    WHERE name = 'AdventureWorks2025';
    

データベーススコープ設定のプロパティはクエリで確認できます。 sys.databases_scoped_configuration

  1. データベース エンジンに接続し、そのプロパティを表示したいデータベースに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、 sys.database_scoped_configurations カタログビューをクエリして現在のデータベースのいくつかのプロパティを閲覧します。

    SELECT configuration_id,
           name,
           value,
           value_for_secondary
    FROM sys.database_scoped_configurations;
    

    さらなる例については 、sys.database_scoped_configurationsを参照してください。

SQL Server データベースのプロパティを変更する ALTER DATABASE

  1. データベース エンジンに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーし、クエリ ウィンドウに貼り付けます。 この例では、 AdventureWorks2025 データベース上のスナップショット分離の状態を確認し、プロパティの状態を変更し、その変更を検証します。

    スナップショット分離の状態を確認するには、最初の SELECT 文を選択して 実行を選択します。

    スナップショット分離の状態を変更するには、 ALTER DATABASE 文を選択して 実行を選択します。

    変更を確認するには、2つ目の SELECT 文を選択し、「 実行」を選択します。

    USE AdventureWorks2025;
    GO
    
    -- Check the state of the snapshot_isolation_framework in the database.
    SELECT name,
           snapshot_isolation_state,
           snapshot_isolation_state_desc AS [Description]
    FROM sys.databases
    WHERE name = N'AdventureWorks2025';
    GO
    
    USE master;
    GO
    
    ALTER DATABASE AdventureWorks2025
        SET ALLOW_SNAPSHOT_ISOLATION ON;
    GO
    
    -- Check again.
    SELECT name,
           snapshot_isolation_state,
           snapshot_isolation_state_desc AS [Description]
    FROM sys.databases
    WHERE name = N'AdventureWorks2025';
    GO
    

ALTER DATABASE SCOPED CONFIGURATION を使用してデータベース スコープのプロパティを変更する

  1. SQL Server インスタンスのデータベースに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーし、クエリ ウィンドウに貼り付けます。 以下の例は、二次データベースの MAXDOP をプライマリデータベースの値に変換します。

    ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY
        SET MAXDOP = PRIMARY;