DATABASEPROPERTYEX (Transact-SQL)

返回 SQL Server 中指定数据库的指定数据库选项或属性的当前设置。

适用范围:SQL Server(SQL Server 2008 至当前版本),Azure SQL Database。

主题链接图标 Transact-SQL 语法约定

语法

DATABASEPROPERTYEX ( database , property )

参数

  • database
    表示要为其返回命名属性信息的数据库的名称。 database 的数据类型为 nvarchar(128)。

  • property
    表示要返回的数据库属性的名称的表达式。 property 是 varchar(128),并且可以为以下值之一。 返回类型为 sql_variant。 下表显示了各属性值的基本数据类型。

    备注

    如果数据库未启动,则 SQL Server 通过直接访问数据库而不是通过从元数据检索值而检索到的属性将返回 NULL。即,数据库的 AUTO_CLOSE 设置为 ON,或者数据库已脱机。

    属性

    说明

    返回的值

    Collation

    数据库的默认排序规则名称。

    排序规则名称

    NULL = 数据库没有启动。

    基本数据类型:nvarchar(128)

    ComparisonStyle

    排序规则的 Windows 比较样式。 ComparisonStyle 是通过使用以下值计算得到的位图。

    样式

    忽略大小写

    1

    忽略重音

    2

    忽略假名

    65536

    忽略宽度

    131072

    例如,196609 的默认值是将忽略大小写、忽略假名和忽略宽度选项合并在一起的结果。

    返回比较样式。

    对所有二进制排序规则均返回 0。

    基本数据类型:int

    版本

    数据库版本。

    Web = Web Edition 数据库

    Business = Business Edition 数据库

    NULL = 数据库没有启动。

    基本数据类型:nvarchar(64).

    适用范围:Azure SQL Database。

    IsAnsiNullDefault

    数据库遵循 ISO 规则,允许 Null 值。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAnsiNullsEnabled

    所有与 Null 的比较将取值为未知。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAnsiPaddingEnabled

    在比较或插入前,字符串将被填充到相同长度。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAnsiWarningsEnabled

    如果发生了标准错误条件,则将发出错误消息或警告消息。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsArithmeticAbortEnabled

    如果执行查询时发生溢出或被零除错误,则将结束查询。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAutoClose

    在最后一个用户退出后,数据库完全关闭并释放资源。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAutoCreateStatistics

    查询优化器根据需要创建单列统计信息以提高查询性能。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAutoCreateStatisticsIncremental

    如果可能,自动创建的单列统会信息会递增。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    适用范围:SQL Server 2014 至 SQL Server 2014。

    IsAutoShrink

    可以定期自动收缩数据库文件。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsAutoUpdateStatistics

    当查询使用现有统计信息并且该统计信息可能过期时,查询优化器将更新该统计信息。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsCloseCursorsOnCommitEnabled

    提交事务时关闭打开的游标。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsFulltextEnabled

    支持对数据库进行全文和语义索引。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    备注

    此属性的值无效。用户数据库始终启用全文搜索。SQL Server 的未来版本中将删除此列。请不要在新的开发工作中使用此列,并尽快修改当前还在使用任何这些列的应用程序。

    适用范围:SQL Server 2008 至 SQL Server 2014。

    IsInStandBy

    数据库以只读方式联机,并允许还原日志。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsLocalCursorsDefault

    游标声明默认为 LOCAL。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsMemoryOptimizedElevateToSnapshotEnabled

    在会话设置 TRANSACTION ISOLATION LEVEL 设置为较低的隔离级别、READ COMMITTED 或 READ UNCOMMITTED 时,使用 SNAPSHOT 隔离访问内存优化表。

    适用范围:SQL Server 2014 至 SQL Server 2014。

    1 = TRUE

    0 = FALSE

    基本数据类型:int

    IsMergePublished

    如果安装了复制,则可以发布数据库表供合并复制。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsNullConcat

    Null 串联操作数产生 NULL。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsNumericRoundAbortEnabled

    表达式中缺少精度时将产生错误。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsParameterizationForced

    PARAMETERIZATION 数据库 SET 选项为 FORCED。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    IsQuotedIdentifiersEnabled

    可对标识符使用英文双引号。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsPublished

    如果安装了复制,可以发布数据库表供快照复制或事务复制。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsRecursiveTriggersEnabled

    已启用触发器递归触发。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsSubscribed

    数据库已订阅发布。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsSyncWithBackup

    数据库为发布数据库或分发数据库,并且在还原时不用中断事务复制。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsTornPageDetectionEnabled

    SQL Server 数据库引擎检测到因电力故障或其他系统故障造成的不完全 I/O 操作。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    LCID

    排序规则的 Windows 区域设置标识符 (LCID)。

    LCID 值(十进制格式)。

    基本数据类型:int

    MaxSizeInBytes

    最大数据库大小(以字节为单位)。

    1073741824

    5368709120

    10737418240

    21474836480

    32212254720

    42949672960

    53687091200

    NULL = 数据库没有启动。

    基本数据类型:bigint

    适用范围:Azure SQL Database。

    Recovery

    数据库的恢复模式。

    FULL = 完整恢复模式

    BULK_LOGGED = 大容量日志记录模型

    SIMPLE = 简单恢复模式

    基本数据类型:nvarchar(128)

    SQLSortOrder

    SQL Server 早期版本中支持的 SQL Server 排序顺序 ID。

    0 = 数据库使用的是 Windows 排序规则

    >0 = SQL Server 排序顺序 ID

    NULL = 输入无效或数据库未启动

    基本数据类型:tinyint

    Status

    数据库状态。

    ONLINE = 数据库可用于查询。

    备注

    当数据库处于打开状态但尚未恢复时,可能返回 ONLINE 状态。要确定数据库何时可以接受连接,可以查询 DATABASEPROPERTYEX 的 Collation 属性。在数据库排序规则返回非 Null 值之后,数据库就可以接受连接了。对于 AlwaysOn 数据库,可以查询 sys.dm_hadr_database_replica_states 的 database_state 或 database_state_desc 列。

    OFFLINE = 数据库已被显式置于脱机状态。

    RESTORING = 正在还原数据库。

    RECOVERING = 正在恢复数据库,尚不能用于查询。

    SUSPECT = 数据库未恢复。

    EMERGENCY = 数据库处于紧急只读状态。 只有 sysadmin 成员可进行访问。

    基本数据类型:nvarchar(128)

    Updateability

    指示是否可以修改数据。

    READ_ONLY = 可读取但不能修改数据。

    READ_WRITE = 可读取和修改数据。

    基本数据类型:nvarchar(128)

    UserAccess

    指示哪些用户可以访问数据库。

    SINGLE_USER = 每次只有一个 db_owner、dbcreator 或 sysadmin 用户

    RESTRICTED_USER = 仅限 db_owner、dbcreator 和 sysadmin 角色的成员

    MULTI_USER = 所有用户

    基本数据类型:nvarchar(128)

    Version

    用于创建数据库的 SQL Server 代码的内部版本号。 标识为仅供参考。不提供支持。不保证以后的兼容性。

    版本号 = 数据库处于打开状态。

    NULL = 数据库没有启动。

    基本数据类型:int

返回类型

sql_variant

异常

出现错误时或调用方没有查看对象的权限时,将返回 NULL。

在 SQL Server 中,用户只能查看其拥有的安全对象的元数据,或者已对其授予权限的安全对象的元数据。 也就是说,如果用户对该对象没有任何权限,则那些会生成元数据的内置函数(如 OBJECT_ID)可能返回 NULL。 有关详细信息,请参阅元数据可见性配置

注释

DATABASEPROPERTYEX 一次只返回一个属性设置。 若要显示多个属性设置,请使用 sys.databases 目录视图。

示例

A.检索 AUTO_SHRINK 数据库选项的状态

以下示例将返回 AdventureWorks 数据库的 AUTO_SHRINK 数据库选项的状态。

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

下面是结果集:该结果集指示 AUTO_SHRINK 已关闭。

------------------
0

B.检索数据库的默认排序规则

以下示例将返回 AdventureWorks 数据库的默认排序规则的名称。

SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'Collation');

下面是结果集:

------------------------------
SQL_Latin1_General_CP1_CI_AI

请参阅

参考

ALTER DATABASE (Transact-SQL)

sys.databases (Transact-SQL)

sys.database_files (Transact-SQL)

SERVERPROPERTY (Transact-SQL)

概念

数据库状态