Edit

Share via


DATABASEPROPERTYEX (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL database in Microsoft Fabric Preview

For a specified database in SQL Server, the DATABASEPROPERTYEX function returns the current setting of the specified database option or property.

Transact-SQL syntax conventions

Syntax

DATABASEPROPERTYEX ( database , property )

Arguments

database

An expression specifying the name of the database for which DATABASEPROPERTYEX returns the named property information. database has an nvarchar(128) data type.

For SQL Database, DATABASEPROPERTYEX requires the name of the current database. It returns NULL for all properties if given a different database name.

property

An expression specifying the name of the database property to return. property has a varchar(128) data type, and supports one of the values in this table:

Note

If the database hasn't yet started, calls to DATABASEPROPERTYEX return NULL if DATABASEPROPERTYEX retrieves those values by direct database access, instead of retrieval from metadata. A database with AUTO_CLOSE set to ON, or otherwise offline, is defined as 'not started.'

Property Description Value returned
Collation

Data type: nvarchar(128)
Default collation name for the database. Collation name. If NULL, the database isn't started.
ComparisonStyle

Data type: int
The Windows comparison style of the collation. Use the following style values to build a bitmap for the finished ComparisonStyle value:

- 1: Ignore case
- 2: Ignore accent
- 65536: Ignore kana
- 131072: Ignore width

For example, the default of 196609 is the result of combining the ignore case, ignore kana, and ignore width options.
Returns the comparison style.

Returns 0 for all binary collations.
Edition

Data type: nvarchar(64)
The database edition or service tier. - General Purpose
- Business Critical
- Basic
- Standard
- Premium
- System (for master database)
- FabricSQLDB: SQL database in Microsoft Fabric Preview
- NULL: Database isn't started.

Applies to: Azure SQL Database, SQL database in Microsoft Fabric Preview, Azure Synapse Analytics.
IsAnsiNullDefault

Data type: int
Database follows ISO rules for allowing NULL values. - 1: True
- 0: False
- NULL: Invalid input
IsAnsiNullsEnabled

Data type: int
All comparisons to a NULL evaluate to unknown. - 1: True
- 0: False
- NULL: Invalid input
IsAnsiPaddingEnabled

Data type: int
Strings are padded to the same length before comparison or insert. - 1: True
- 0: False
- NULL: Invalid input
IsAnsiWarningsEnabled

Data type: int
SQL Server issues error or warning messages when standard error conditions occur. - 1: True
- 0: False
- NULL: Invalid input
IsArithmeticAbortEnabled

Data type: int
Queries end when an overflow or divide-by-zero error occurs during query execution. - 1: True
- 0: False
- NULL: Invalid input
IsAutoClose

Data type: int
Database shuts down cleanly and frees resources after the last user exits. - 1: True
- 0: False
- NULL: Invalid input
IsAutoCreateStatistics

Data type: int
Query optimizer creates single-column statistics, as required, to improve query performance. - 1: True
- 0: False
- NULL: Invalid input
IsAutoCreateStatisticsIncremental

Data type: int
Auto-created single column statistics are incremental when possible. - 1: True
- 0: False
- NULL: Invalid input

Applies to: SQL Server 2014 (12.x) and later versions.
IsAutoShrink

Data type: int
Database files are candidates for automatic periodic shrinking. - 1: True
- 0: False
- NULL: Invalid input
IsAutoUpdateStatistics

Data type: int
When a query uses potentially out-of-date existing statistics, the query optimizer updates those statistics. - 1: True
- 0: False
- NULL: Input not valid
IsClone

Data type: int
Database is a schema- and statistics-only copy of a user database created with DBCC CLONEDATABASE. - 1: True
- 0: False
- NULL: Invalid input

Applies to: SQL Server 2014 (12.x) SP2 and later versions.
IsCloseCursorsOnCommitEnabled

Data type: int
When a transaction commits, all open cursors are closed. - 1: True
- 0: False
- NULL: Invalid input
IsDatabaseSuspendedForSnapshotBackup

Data type: int
Database is suspended. - 1: True
- 0: False
- NULL: Invalid input
IsFulltextEnabled

Data type: int
Database is enabled for full-text and semantic indexing. - 1: True
- 0: False
- NULL: Input not valid

Applies to: SQL Server 2008 (10.0.x) and later versions.

Note: The value of this property now has no effect. User databases are always enabled for full-text search. A future release of SQL Server will remove this property. Don't use this property in new development work, and modify applications that currently use this property as soon as possible.
IsInStandBy

Data type: int
Database is online as read-only, with restore log allowed. - 1: True
- 0: False
- NULL: Invalid input
IsLocalCursorsDefault

Data type: int
Cursor declarations default to LOCAL. - 1: True
- 0: False
- NULL: Invalid input
IsMemoryOptimizedElevateToSnapshotEnabled

Data type: int
Memory-optimized tables are accessed using SNAPSHOT isolation, when the session setting TRANSACTION ISOLATION LEVEL is set to READ COMMITTED, READ UNCOMMITTED, or a lower isolation level. - 1: True
- 0: False

Applies to: SQL Server 2014 (12.x) and later versions.
IsMergePublished

Data type: int
SQL Server supports database table publication for merge replication, if replication is installed. - 1: True
- 0: False
- NULL: Invalid input
IsNullConcat

Data type: int
Null concatenation operand yields NULL. - 1: True
- 0: False
- NULL: Invalid input
IsNumericRoundAbortEnabled

Data type: int
Errors are generated when a loss of precision occurs in expressions. - 1: True
- 0: False
- NULL: Invalid input
IsOptimizedLockingOn

Data type: int
Optimized locking is enabled for the database. - 1: True
- 0: False
- NULL: Not available

Applies to: SQL Server 2025 (17.x) Preview and later versions, Azure SQL Database, Azure SQL Managed InstanceAUTD, and SQL database in Microsoft Fabric Preview.
IsParameterizationForced

Data type: int
PARAMETERIZATION database SET option is FORCED. - 1: True
- 0: False
- NULL: Invalid input
IsQuotedIdentifiersEnabled

Data type: int
Double quotation marks on identifiers are allowed. - 1: True
- 0: False
- NULL: Invalid input
IsPublished

Data type: int
If replication is installed, SQL Server supports database table publication for snapshot or transactional replication. - 1: True
- 0: False
- NULL: Invalid input
IsRecursiveTriggersEnabled

Data type: int
Recursive firing of triggers is enabled. - 1: True
- 0: False
- NULL: Invalid input
IsSubscribed

Data type: int
Database is subscribed to a publication. - 1: True
- 0: False
- NULL: Invalid input
IsSyncWithBackup

Data type: int
The database is either a published database or a distribution database, and it supports a restore that doesn't disrupt transactional replication. - 1: True
- 0: False
- NULL: Invalid input
IsTornPageDetectionEnabled

Data type: int
The SQL Server Database Engine detects incomplete I/O operations caused by power failures or other system outages. - 1: True
- 0: False
- NULL: Invalid input
IsVerifiedClone

Data type: int
Database is a schema- and statistics- only copy of a user database, created using the WITH VERIFY_CLONEDB option of DBCC CLONEDATABASE. - 1: True
- 0: False
- NULL: Invalid input

Applies to: SQL Server 2016 (13.x) SP2 and later versions.
IsXTPSupported

Data type: int
Indicates whether the database supports In-Memory OLTP. For example, creation and use of memory-optimized tables and natively compiled modules.

Specific to SQL Server:

IsXTPSupported is independent of the existence of any MEMORY_OPTIMIZED_DATA filegroup, which is required for creating In-Memory OLTP objects.
- 1: True
- 0: False
- NULL: Invalid input, an error, or not applicable

Applies to: SQL Server 2016 (13.x) and later versions, and Azure SQL Database.
LastGoodCheckDbTime

Data type: datetime
The date and time of the last successful DBCC CHECKDB that ran on the specified database. If DBCC CHECKDB hasn't been run on a database, 1900-01-01 00:00:00.000 is returned. For databases that are part of an availability group, LastGoodCheckDbTime returns the date and time of the last successful DBCC CHECKDB that ran on the primary replica, regardless of which replica you run the command from. NULL: Invalid input

Applies to: SQL Server 2016 (13.x) SP2, SQL Server 2017 (14.x) CU9, SQL Server 2019 (15.x) and later versions, Azure SQL Database, and SQL database in Microsoft Fabric Preview.
LCID

Data type: int
The collation Windows locale identifier (LCID). LCID value (in decimal format).
MaxSizeInBytes

Data type: bigint
Maximum database size, in bytes. - Azure SQL Database and Azure Synapse Analytics: Value is based on SLO unless extra storage has been purchased.

- vCore: Value is in 1GB increments up to max size.

- NULL: Database isn't started

Applies to: Azure SQL Database, SQL database in Microsoft Fabric Preview, and Azure Synapse Analytics.
Recovery

Data type: nvarchar(128)
Database recovery model. - FULL: Full recovery model
- BULK_LOGGED: Bulk logged model
- SIMPLE: Simple recovery model
ServiceObjective

Data type: nvarchar(32)
Describes the performance level of the database in SQL Database, SQL database in Microsoft Fabric Preview, or Azure Synapse Analytics. One of the following values:

- NULL: database not started
- Shared (for Web/Business editions)
- Basic
- S0
- S1
- S2
- S3
- P1
- P2
- P3
- ElasticPool
- System (for master database)
- FabricSQLDB: SQL database in Microsoft Fabric Preview
ServiceObjectiveId

Data type: uniqueidentifier
The ID of the service objective in SQL Database. ID of the service objective.
SQLSortOrder

Data type: tinyint
SQL Server sort order ID supported in earlier versions of SQL Server. - 0: Database uses Windows collation

- >0: SQL Server sort order ID

- NULL: Invalid input, or database hasn't started
Status

Data type: nvarchar(128)
Database status. ONLINE: Database is available for query.

Note: The function might return a status of ONLINE while the database opens and hasn't yet recovered. To identify if an ONLINE database can accept connections, query the Collation property of DATABASEPROPERTYEX. The ONLINE database can accept connections when the database collation returns a non-null value. For Always On databases, query the database_state or database_state_desc columns of sys.dm_hadr_database_replica_states.

- OFFLINE: Database was explicitly taken offline.

- RESTORING: Database restore has started.

- RECOVERING: Database recovery has started and the database isn't yet ready for queries.

- SUSPECT: Database didn't recover.

- EMERGENCY: Database is in an emergency, read-only state. Access is restricted to sysadmin members
Updateability

Data type: nvarchar(128)
Indicates whether data can be modified. READ_ONLY: Database supports data reads but not data modifications.

- READ_WRITE: Database supports data reads and modifications.
UserAccess

Data type: nvarchar(128)
Indicates which users can access the database. SINGLE_USER: Only one db_owner, dbcreator, or sysadmin user at a time

- RESTRICTED_USER: Only members of db_owner, dbcreator, or sysadmin roles

- MULTI_USER: All users
Version

Data type: int
Internal version number of the SQL Server code with which the database was created. Identified for informational purposes only. Not supported. Future compatibility is not guaranteed. - Version number: Database is open.

- NULL: Database hasn't started.
ReplicaID

Data type: nvarchar(128)
The replica ID of a connected hyperscale database/replica. Only returns the replica ID of a connected Hyperscale database/replica. To learn more about replica types, see Hyperscale secondary replicas.

- NULL: Not a hyperscale database, or the database isn't started.

Applies to: Azure SQL Database Hyperscale.

Return types

sql_variant

Exceptions

Returns NULL on error, or if a caller doesn't have permission to view the object.

In SQL Server, a user can only view the metadata of securables that the user owns or on which the user has been granted permission. This rule means that metadata-emitting, built-in functions such as OBJECT_ID can return NULL if the user has no permissions on the object. For more information, see Metadata visibility configuration.

Remarks

DATABASEPROPERTYEX returns only one property setting at a time. To display multiple property settings, use the sys.databases catalog view.

Examples

The code samples in this article use the AdventureWorks2022 or AdventureWorksDW2022 sample database, which you can download from the Microsoft SQL Server Samples and Community Projects home page.

A. Retrieve the status of the AUTO_SHRINK database option

This example returns the status of the AUTO_SHRINK database option for the AdventureWorks database.

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

Here's the result set. This indicates that AUTO_SHRINK is off.

0

B. Retrieve the default collation for a database

This example returns several attributes of the AdventureWorks database.

SELECT DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,
       DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition,
       DATABASEPROPERTYEX('AdventureWorks2022', 'ServiceObjective') AS ServiceObjective,
       DATABASEPROPERTYEX('AdventureWorks2022', 'MaxSizeInBytes') AS MaxSizeInBytes;

Here's the result set.

Collation                     Edition        ServiceObjective  MaxSizeInBytes
----------------------------  -------------  ----------------  --------------
SQL_Latin1_General_CP1_CI_AS  DataWarehouse  DW1000            5368709120

C. Use DATABASEPROPERTYEX to verify connection to replica

When you use the Azure SQL Database scale-out feature, you can verify whether you're connected to a read-only replica or not by running the following query in the context of your database. It returns READ_ONLY when you're connected to a read-only replica. This way, you can also identify when a query is running on a read-only replica.

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');