DATABASEPROPERTYEX (Transact-SQL)

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

主题链接图标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
    忽略 Kana65536
    忽略宽度131072

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

    返回比较样式。

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

    基本数据类型:int

    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

    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 的未来版本中将删除此列。请不要在新的开发工作中使用此列,并尽快修改当前还在使用任何这些列的应用程序。

    IsInStandBy

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

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型:int

    IsLocalCursorsDefault

    游标声明默认为 LOCAL。

    1 = TRUE

    0 = FALSE

    NULL = 输入无效

    基本数据类型: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

    若要查看 LCID 值的列表(十六进制格式),请参阅安装程序中的排序规则设置

    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 值之后,数据库就可以接受连接了。

    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 数据库选项的状态

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

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

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

------------------

0

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

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

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

下面是结果集:

------------------------------

SQL_Latin1_General_CP1_CI_AI