DATABASEPROPERTYEX (Transact-SQL)
返回 SQL Server 中指定数据库的指定数据库选项或属性的当前设置。
适用范围:SQL Server(SQL Server 2008 至当前版本),Azure SQL Database。 |
语法
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
请参阅
参考
sys.database_files (Transact-SQL)