DATABASEPROPERTYEX (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Para una base de datos especificada en SQL Server, esta función devuelve la configuración actual de la opción o propiedad de base de datos especificada.

Convenciones de sintaxis de Transact-SQL

Sintaxis

DATABASEPROPERTYEX ( database , property )  

Argumentos

database
Una expresión que especifica el nombre de la base de datos para la que DATABASEPROPERTYEX devolverá la información de la propiedad con nombre. database tiene un tipo de datos nvarchar(128) .

Para SQL Database, DATABASEPROPERTYEX necesita el nombre de la base de datos actual. Devuelve NULL para todas las propiedades si se proporciona un nombre de base de datos diferente.

property
Una expresión que especifica el nombre de la propiedad de base de datos que se va a devolver. property tiene un tipo de datos varchar(128) y admite uno de los valores de esta tabla:

Nota

Si la base de datos aún no se ha iniciado, las llamadas a DATABASEPROPERTYEX devolverán NULL si DATABASEPROPERTYEX recupera esos valores mediante el acceso directo de la base de datos, en lugar de hacerlo mediante la recuperación a partir de los metadatos. Si hay una base de datos con AUTO_CLOSE establecido en ON (o, de lo contrario, sin conexión), se definirá como "no iniciada".

Propiedad Descripción Valor devuelto
Intercalación Nombre de intercalación predeterminado para la base de datos. Nombre de intercalación

NULL: La base de datos no se ha iniciado.

Tipo de datos base: nvarchar(128)
ComparisonStyle El estilo de comparación de Windows de la intercalación. Use los siguientes valores de estilo para generar un mapa de bits para el valor ComparisonStyle terminado:

Omitir mayúsculas y minúsculas: 1
Omitir acento: 2
Omitir Kana: 65536
Omitir ancho: 131072

Por ejemplo, el valor predeterminado 196609 es el resultado de combinar las opciones de omitir mayúsculas y minúsculas, omitir Kana y omitir ancho.
Devuelve el estilo de comparación.

Devuelve 0 para todas las intercalaciones binarias.

Tipo de datos base: int
Edición El nivel de servicio o edición de la base de datos. Se aplica a: Azure SQL Database, Azure Synapse Analytics.



De uso general

Crítico para la empresa

Básico

Estándar

Premium

System (de la base de datos maestra)

NULL: La base de datos no se ha iniciado.

Tipo de datos base: nvarchar(64)
IsAnsiNullDefault La base de datos sigue las reglas ISO para permitir los valores NULL. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAnsiNullsEnabled Todas las comparaciones con un valor NULL tienen un resultado desconocido. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAnsiPaddingEnabled Las cadenas se rellenan a la misma longitud antes de comparar o insertar. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAnsiWarningsEnabled SQL Server emite mensajes de error o de advertencia cuando se producen condiciones de error estándar. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsArithmeticAbortEnabled Las consultas se finalizan cuando hay un error de desbordamiento o división por cero durante su ejecución. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAutoClose La base de datos se cierra sin problemas y libera los recursos cuando sale el último usuario. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAutoCreateStatistics El optimizador de consultas crea estadísticas de columna única, según sea necesario, para mejorar el rendimiento de las consultas. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAutoCreateStatisticsIncremental Las estadísticas de columna única creadas automáticamente son incrementales siempre que sea posible. Válido para : SQL Server 2014 (12.x) y versiones posteriores.

1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAutoShrink Los archivos de base de datos son candidatos para la reducción periódica automática. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsAutoUpdateStatistics Cuando una consulta usa estadísticas existentes potencialmente obsoletas, el optimizador de consultas actualiza dichas estadísticas. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsClone La base de datos es una copia de solo estadísticas y esquema de una base de datos de usuario creada con DBCC CLONEDATABASE. Vea este artículo de Soporte técnico de Microsoft para más información. Se aplica a: SQL Server 2014 (12.x) SP2 y versiones posteriores

1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsCloseCursorsOnCommitEnabled Cuando se confirme una transacción, se cerrarán todos los cursores abiertos. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsDatabaseSuspendedForSnapshotBackup La base de datos está suspendida. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsFulltextEnabled La base de datos está habilitada para la indización semántica y de texto completo. Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.



1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int

Nota: El valor de esta propiedad ya no tiene ningún efecto. En las bases de datos de usuario siempre está habilitada la búsqueda de texto completo. Una versión futura de SQL Server quitará esta propiedad. No use esta propiedad en nuevos trabajos de desarrollo, y modifique lo antes posible las aplicaciones que la usen actualmente.
IsInStandBy La base de datos está en línea como de solo lectura con el registro de restauración permitido. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsLocalCursorsDefault El valor predeterminado de las declaraciones de cursores es LOCAL. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsMemoryOptimizedElevateToSnapshotEnabled Se obtiene acceso a las tablas optimizadas para memoria mediante el aislamiento de SNAPSHOT cuando el valor de configuración de sesión TRANSACTION ISOLATION LEVEL se establece en READ COMMITTED, READ UNCOMMITTED o en un nivel de aislamiento inferior. Válido para : SQL Server 2014 (12.x) y versiones posteriores.



1: TRUE

0: FALSE

Tipo de datos base: int
IsMergePublished SQL Server admite la publicación de tablas de base de datos para la replicación de mezcla, en el caso de que la replicación esté instalada. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsNullConcat La concatenación con un operando NULL da como resultado NULL. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsNumericRoundAbortEnabled Se generan errores cuando se produce una pérdida de precisión en expresiones. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsParameterizationForced La opción de base de datos PARAMETERIZATION es FORCED por medio del comando SET. 1: TRUE

0: FALSE

NULL: Entrada no válida
IsQuotedIdentifiersEnabled Se pueden usar comillas dobles en los identificadores. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsPublished Si la replicación está instalada, SQL Server admite la publicación de tablas de base de datos para la replicación transaccional o de instantáneas. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsRecursiveTriggersEnabled Se habilita la activación recursiva de desencadenadores. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsSubscribed La base de datos está suscrita a una publicación. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsSyncWithBackup La base de datos es una base de datos publicada o una base de datos de distribución y admite una restauración que no interrumpirá la replicación transaccional. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsTornPageDetectionEnabled Motor de base de datos de SQL Server detecta operaciones de E/S incompletas debido a problemas con el suministro eléctrico u otros errores del sistema. 1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsVerifiedClone La base de datos es una copia de solo estadísticas y esquema de una base de datos de usuario, creada con la opción WITH VERIFY_CLONEDB de DBCC CLONEDATABASE. Vea este artículo de Soporte técnico de Microsoft para más información. Se aplica a: A partir de SQL Server 2016 (13.x) SP2.



1: TRUE

0: FALSE

NULL: Entrada no válida

Tipo de datos base: int
IsXTPSupported Indica si la base de datos admite OLTP en memoria. Por ejemplo, la creación y el uso de tablas optimizadas para memoria y módulos compilados de forma nativa.

Específica de SQL Server:

IsXTPSupported es independiente de la existencia de algún grupo de archivos MEMORY_OPTIMIZED_DATA, necesario para crear objetos de OLTP en memoria.
Se aplica a: SQL Server (SQL Server 2016 (13.x) y versiones posteriores) y Azure SQL Database

1: TRUE

0: FALSE

NULL: Entrada no válida, error o no aplicable

Tipo de datos base: int
LastGoodCheckDbTime La fecha y hora de la última operación DBCC CHECKDB que se ejecutó correctamente en la base de datos especificada. 1 Si DBCC CHECKDB no se ha ejecutado en una base de datos, se devuelve 01-01-1900 00:00:00.000. Se aplica a: SQL Server 2016 (13.x) a partir de SP2.
SQL Server 2017 (14.x) a partir de CU9.
SQL Server 2019 (15.x) o posterior.
Azure SQL Database.

Un valor de fecha y hora

NULL: Entrada no válida

Tipo de datos base: datetime
LCID El identificador de configuración regional (LCID) de Windows para la intercalación. Valor de LCID (en formato decimal).

Tipo de datos base: int
MaxSizeInBytes Tamaño máximo de la base de datos (en bytes). Se aplica a: Azure SQL Database, Azure Synapse Analytics.

Azure SQL Database y Azure Synapse Analytics: el valor se basa en SLO, a menos que se haya adquirido almacenamiento adicional.

núcleo virtual: el valor está en incrementos de 1 GB hasta el tamaño máximo.

NULL: La base de datos no se ha iniciado

Tipo de base de datos: bigint
Recuperación Modelo de recuperación de base de datos FULL: Modelo de recuperación completa

BULK_LOGGED: Modelo optimizado para cargas masivas de registros

SIMPLE: Modelo de recuperación simple

Tipo de datos base: nvarchar(128)
ServiceObjective Describe el nivel de rendimiento de la base de datos en SQL Database o Azure Synapse Analytics. Uno de los siguientes valores:

NULL = La base de datos no se ha iniciado

Compartido (para las ediciones Web o Business)

Básico

S0

S1

S2

S3

P1

P2

P3

ElasticPool

Sistema (para la base de datos maestra)

Tipo de datos base: nvarchar(32)
ServiceObjectiveId El identificador del objetivo del servicio en SQL Database. uniqueidentifier que identifica el objetivo del servicio.
SQLSortOrder Id. de orden de SQL Server compatible con versiones anteriores de SQL Server. 0: La base de datos usa intercalación de Windows

>0: identificador de criterio de ordenación de SQL Server

NULL: Entrada no válida o no se ha iniciado la base de datos

Tipo de datos base: tinyint
Estado Estado de la base de datos. ONLINE: La base de datos está disponible para consultas.

Nota: La función puede devolver el estado ONLINE mientras se abre la base de datos y aún no se ha recuperado. Para saber si una base de datos ONLINE puede aceptar conexiones, consulte la propiedad Collation de DATABASEPROPERTYEX. La base de datos ONLINE puede aceptar conexiones cuando la intercalación de base de datos devuelve un valor distinto de NULL. En el caso de las bases de datos Always On, consulte las columnas database_state o database_state_desc de sys.dm_hadr_database_replica_states.

OFFLINE: La base de datos está explícitamente sin conexión.

RESTORING: Se ha iniciado la restauración de la base de datos.

RECOVERING: Se ha iniciado la recuperación de la base de datos, que aún no está lista para las consultas.

SUSPECT: La base de datos no se recuperó.

EMERGENCY: La base de datos está en un estado de emergencia de solo lectura. El acceso se restringe a los miembros del rol sysadmin

Tipo de datos base: nvarchar(128)
Updateability Indica si los datos se pueden modificar. READ_ONLY: La base de datos admite lecturas de datos, pero no modificaciones de datos.

READ_WRITE: La base de datos admite lecturas y modificaciones de datos.

Tipo de datos base: nvarchar(128)
UserAccess Indica qué usuarios pueden tener acceso a la base de datos. SINGLE_USER: Solo un usuario db_owner, dbcreator o sysadmin a la vez

RESTRICTED_USER: Solo miembros de los roles db_owner, dbcreator o sysadmin

MULTI_USER: Todos los usuarios

Tipo de datos base: nvarchar(128)
Versión Número interno de versión del código de SQL Server con el que se creó la base de datos. Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada. Número de versión: La base de datos está abierta.

NULL: La base de datos no se ha iniciado

Tipo de datos base: int
ReplicaID Identificador de réplica de una base de datos o réplica de hiperescala conectada. Se aplica a: Azure SQL Database.

Solo devolverá el identificador de réplica de una base de datos o réplica de hiperescala conectada. Para más información sobre los tipos de réplica, consulte Réplicas secundarias de Hiperescala.

NULL: no es una base de datos de hiperescala o no se inicia la base de datos.

Tipo de datos base: nvarchar(128)

Nota

1 Para las bases de datos que forman parte de un grupo de disponibilidad, LastGoodCheckDbTime devolverá la fecha y hora de la última operación DBCC CHECKDB que se ejecutó correctamente en la réplica principal, con independencia de la réplica desde la que se ejecute el comando.

Tipos de valores devueltos

sql_variant

Excepciones

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.

En SQL Server, un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esta regla significa que las funciones integradas de emisión de metadatos, como OBJECT_ID, podrían devolver NULL si el usuario no tiene permisos en el objeto. Vea Configuración de visibilidad de los metadatos para obtener más información.

Observaciones

DATABASEPROPERTYEX devuelve un único valor de propiedad cada vez. Para ver varios valores de propiedad, use la vista de catálogo sys.databases.

Ejemplos

A. Recuperar el estado de la opción de base de datos AUTO_SHRINK

Este ejemplo devuelve el estado de la opción de base de datos AUTO_SHRINK para la base de datos AdventureWorks.

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

Este es el conjunto de resultados. Esto indica que AUTO_SHRINK está desactivado.

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

B. Recuperar la intercalación predeterminada de una base de datos

Este ejemplo devuelve varios atributos de la base de datos AdventureWorks.

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

Este es el conjunto de resultados.

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

C. Usar DATABASEPROPERTYEX para comprobar la conexión a la réplica

Al usar la característica de escalado horizontal de lectura de Azure SQL Database, puede ejecutar la siguiente consulta en el contexto de la base de datos para comprobar si está conectado a una réplica de solo lectura. Si está conectado a una réplica de solo lectura, se devolverá READ_ONLY. De este modo, también puede identificar cuándo se ejecuta una consulta en una réplica de solo lectura.

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

Consulte también

ALTER DATABASE (Transact-SQL)
Estados de base de datos
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)