分享方式:


檢視或變更資料庫的屬性

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體

此主題描述了如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中檢視或變更資料庫的屬性。 變更資料庫屬性之後,修改會立即生效。

本主題內容

開始之前

建議

  • 當 AUTO_CLOSE 設為 ON 時,sys.databases 目錄檢視中某些資料行及 DATABASEPROPERTYEX 函數會傳回 NULL,因為資料庫無法擷取資料。 若要解決此問題,請開啟資料庫。

安全性

權限

需要資料庫的 ALTER 權限,才能變更資料庫的屬性。 至少需要公用資料庫角色的成員資格,才能檢視資料庫的屬性。

使用 SQL Server Management Studio

檢視或變更資料庫的屬性

  1. 物件總管中,連接到 SQL Server Database Engine 的執行個體,然後展開該執行個體。

  2. 展開 [資料庫],以滑鼠右鍵按一下要檢視的資料庫,然後按一下 [屬性]

  3. 在 [資料庫屬性] 對話框中,選取頁面以檢視相應的資訊。 例如,選取 [檔案] 頁面,以檢視資料和記錄檔資訊。

使用 TRANSACT-SQL

Transact-SQL 提供多種不同的方法來檢視資料庫的屬性,以及變更資料庫的屬性。 若要檢視資料庫的屬性,您可使用 DATABASEPROPERTYEX (Transact-SQL) 函數和 sys.databases (Transact-SQL) 目錄檢視。 若要變更資料庫的屬性,您可針對您的環境使用 ALTER DATABASE 陳述式版本:ALTER DATABASE (Transact-SQL)ALTER DATABASE (Azure SQL 資料庫)。 若要檢視資料庫範圍屬性,請使用 sys.database_scoped_configurations (Transact-SQL) 目錄檢視;若要更改資料庫範圍屬性,請使用 ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) 陳述式。

使用 DATABASEPROPERTYEX 函數來檢視資料庫的屬性

  1. 連線至資料庫引擎,然後連線至您想要檢視其屬性的資料庫。

  2. 在標準列中,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會使用 DATABASEPROPERTYEX 系統函數,來傳回 AdventureWorks2022 資料庫中 AUTO_SHRINK 資料庫選項的狀態。 傳回值為 1 表示選項設定為 ON,而傳回值為 0 則表示選項設定為 OFF。

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

藉由查詢 sys.databases 來檢視資料庫的屬性

  1. 連線至資料庫引擎,然後連線至您想要檢視其屬性的資料庫。

  2. 在標準列中,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會查詢 sys.databases 目錄檢視,以檢視 AdventureWorks2022 資料庫的數個屬性。 此範例會傳回資料庫識別碼 (database_id),無論資料庫是唯讀還是讀寫 (is_read_only)、資料庫的定序 (collation_name),還是資料庫相容性層級 (compatibility_level)。

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

藉由查詢 sys.databases_scoped_configuration 來檢視資料庫範圍組態的屬性

  1. 連線至資料庫引擎,然後連線至您想要檢視其屬性的資料庫。

  2. 在標準列中,按一下 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例會查詢 sys.database_scoped_configurations (Transact-SQL) 目錄檢視,以檢視目前資料庫的數個屬性。

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

    如需更多範例,請參閱 sys.database_scoped_configurations (Transact-SQL)

使用 ALTER DATABASE 變更 SQL Server 2016 資料庫的屬性

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼入查詢視窗中。 該範例會判定 AdventureWorks2022 資料庫上的快照集隔離狀態,變更屬性的狀態,然後驗證變更。

    若要判定快照集隔離的狀態,請選取第一個 SELECT 陳述式,然後按一下 [執行]

    若要變更快照集隔離的狀態,請選取 ALTER DATABASE 陳述式,然後按一下 [執行]

    若要確認變更,請選取第二個 SELECT 陳述式,然後按一下 [執行]

    USE AdventureWorks2022;
    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'AdventureWorks2022';
    GO
    USE master;
    GO
    ALTER DATABASE AdventureWorks2022
        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'AdventureWorks2022';
    GO
    

使用 ALTER DATABASE SCOPED CONFIGURATION 變更資料庫範圍屬性

  1. 連線至 SQL Server 執行個體中的資料庫。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼入查詢視窗中。 下列範例會將次要資料庫的 MAXDOP 設定為主要資料庫的值。

    ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY   
    

另請參閱

sys.databases (Transact-SQL)
DATABASEPROPERTYEX (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER DATABASE (Azure SQL Database)
ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
sys.database_scoped_configurations (Transact-SQL)