查看或更改数据库的属性

适用于:SQL ServerAzure 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 数据库引擎的实例,然后展开该实例。

  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 数据库的几个属性。 此实例返回数据库 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 = '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 数据库)
ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
sys.database_scoped_configurations (Transact-SQL)