DATABASEPROPERTYEX (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Pour une base de données spécifiée dans SQL Server, cette fonction retourne le paramètre actuel de l’option ou de la propriété de base de données spécifiée.

Conventions de la syntaxe Transact-SQL

Syntaxe

DATABASEPROPERTYEX ( database , property )  

Arguments

database
Expression spécifiant le nom de la base de données pour laquelle DATABASEPROPERTYEX retourne des informations sur la propriété nommée. Le type de données de database est nvarchar(128) .

Pour SQL Database, DATABASEPROPERTYEX a besoin du nom de la base de données active. Elle retourne la valeur NULL pour toutes les propriétés si un nom de base de données différent lui est donné.

property
Expression spécifiant le nom de la propriété de base de données à retourner. property possède le type de données varchar (128) et prend en charge l’une des valeurs contenues dans ce tableau :

Notes

Si la base de données n’a pas encore démarré, les appels à DATABASEPROPERTYEX retournent la valeur NULL si DATABASEPROPERTYEX récupère ces valeurs par un accès direct à la base de données, au lieu d’une récupération à partir des métadonnées. Une base de données avec l’option AUTO_CLOSE définie sur ON, ou bien en mode hors connexion, est définie comme étant « non démarrée ».

Propriété Description Valeur retournée
Classement Nom du classement par défaut de la base de données Nom du classement

NULL : la base de données n’est pas démarrée.

Type de données de base : nvarchar(128)
ComparisonStyle Style de comparaison Windows du classement. Pour générer une bitmap pour la valeur ComparisonStyle terminée, utilisez les valeurs de style suivantes :

Ignorer la casse : 1
Ignorer les accents : 2
Ignorer le type de caractères Kana : 65536
Ignorer la largeur : 131072

Par exemple, la valeur par défaut 196609 est le résultat de la combinaison des options permettant d’ignorer la casse, le type de caractères Kana et la largeur.
Retourne le style de comparaison.

Renvoie 0 pour tous les classements binaires.

Type de données de base : int
Édition Édition de la base de données ou couche de service. S’applique à : Azure SQL Database, Azure Synapse Analytics.



Usage général

Critique pour l’entreprise

De base

standard

Premium

Système (pour la base de données master)

NULL : la base de données n’est pas démarrée.

Type de données de base : nvarchar(64)
IsAnsiNullDefault La base de données suit les règles ISO d'autorisation des valeurs Null. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAnsiNullsEnabled Toutes les comparaisons à une valeur NULL produisent le résultat UNKNOWN (inconnu). 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAnsiPaddingEnabled Les chaînes sont complétées à la même longueur avant leur comparaison ou insertion. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAnsiWarningsEnabled SQL Server émet des messages d’erreur ou d’avertissement quand des conditions d’erreur standard se présentent. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsArithmeticAbortEnabled Les requêtes s’arrêtent quand une erreur liée à un dépassement de capacité ou une division par zéro se produit pendant leur exécution. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAutoClose La base de données est fermée correctement et ses ressources sont libérées après la fin de session du dernier utilisateur. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAutoCreateStatistics L'optimiseur de requête crée des statistiques de colonnes uniques, selon les besoins, pour améliorer les performances des requêtes. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAutoCreateStatisticsIncremental Les statistiques de colonnes uniques créées automatiquement sont incrémentielles quand cela est possible. S’applique à : SQL Server 2014 (12.x) et versions ultérieures.

1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAutoShrink Les fichiers de base de données peuvent faire l'objet d'une réduction périodique automatique. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsAutoUpdateStatistics Quand une requête utilise des statistiques existantes potentiellement périmées, l’optimiseur de requête met à jour ces statistiques. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsClone La base de données est une copie de schéma et de statistiques uniquement d’une base de données utilisateur créée avec DBCC CLONEDATABASE. Pour plus d’informations, consultez l’article du Support Microsoft. S’applique à : SQL Server 2014 (12.x) SP2 et versions ultérieures.

1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsCloseCursorsOnCommitEnabled Dès lors qu’une transaction est validée, tous les curseurs ouverts se ferment. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsDatabaseSuspendedForSnapshotBackup La base de données est suspendue. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsFulltextEnabled L'indexation sémantique et de texte intégral est activée pour la base de données. S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.



1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int

Remarque : La valeur de cette propriété est désormais sans effet. Les bases de données utilisateur sont toujours activées pour la recherche en texte intégral. Cette propriété sera supprimée dans une future version de SQL Server. Évitez d’utiliser cette propriété dans un nouveau travail de développement et modifiez dès que possible les applications qui l’utilisent actuellement.
IsInStandBy La base de données est en ligne en lecture seule, avec la restauration du journal autorisée. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsLocalCursorsDefault Les déclarations de curseurs prennent la valeur LOCAL par défaut. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsMemoryOptimizedElevateToSnapshotEnabled L’isolation SNAPSHOT permet d’accéder aux tables à mémoire optimisée quand le paramètre de session TRANSACTION ISOLATION LEVEL est défini sur READ COMMITTED, READ UNCOMMITTED ou un niveau d’isolation inférieur. S’applique à : SQL Server 2014 (12.x) et versions ultérieures.



1 : TRUE

0 : FALSE

Type de données de base : int
IsMergePublished SQL Server prend en charge la publication de tables de base de données pour la réplication de fusion, si la réplication est installée. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsNullConcat Un opérande de concaténation Null produit NULL. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsNumericRoundAbortEnabled Des erreurs sont générées quand une perte de précision se produit dans des expressions. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsParameterizationForced L'option SET de base de données PARAMETERIZATION a la valeur FORCED. 1 : TRUE

0 : FALSE

NULL : entrée non valide
IsQuotedIdentifiersEnabled Les guillemets doubles sont autorisés dans les identificateurs. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsPublished Si la réplication est installée, SQL Server prend en charge la publication de tables de base de données pour la réplication transactionnelle ou de capture instantanée. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsRecursiveTriggersEnabled Le fonctionnement récursif des déclencheurs est activé. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsSubscribed La base de données est abonnée à une publication. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsSyncWithBackup La base de données est soit une base de données publiée, soit une base de données de distribution, et elle prend en charge une restauration qui n’interrompra pas la réplication transactionnelle. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsTornPageDetectionEnabled Le Moteur de base de données SQL Server détecte les opérations d'E/S interrompues à la suite d'une coupure de courant ou de toute autre panne du système. 1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsVerifiedClone La base de données est une copie de schéma et de statistiques uniquement d’une base de données utilisateur créée avec l’option WITH VERIFY_CLONEDB de DBCC CLONEDATABASE. Pour plus d’informations, consultez cet article du Support Microsoft. S’applique à : À compter de SQL Server 2016 (13.x) SP2.



1 : TRUE

0 : FALSE

NULL : entrée non valide

Type de données de base : int
IsXTPSupported Indique si la base de données prend en charge OLTP en mémoire. Par exemple : création et utilisation de tables à mémoire optimisée et de modules compilés en mode natif.

Spécifique à SQL Server :

La propriété IsXTPSupported est indépendante de l’existence de tout groupe de fichiers MEMORY_OPTIMIZED_DATA, qui est nécessaire pour la création d’objets OLTP en mémoire.
S’applique à : SQL Server (SQL Server 2016 (13.x) et versions ultérieures) et Azure SQL Database.

1 : TRUE

0 : FALSE

NULL : entrée non valide, erreur ou non applicable

Type de données de base : int
LastGoodCheckDbTime Date et heure de la dernière exécution réussie de DBCC CHECKDB sur la base de données spécifiée.1 Si DBCC CHECKDB n’a pas été exécuté sur une base de données, 1900-01-01 00:00:00.000 est retourné. S’applique à : SQL Server 2016 (13.x) à compter du SP2.
SQL Server 2017 (14.x) à compter de CU9.
SQL Server 2019 (15.x) ou ultérieur.
Azure SQL Database.

Valeur DateHeure

NULL : entrée non valide

Type de données de base : datetime
LCID Identificateur de paramètres régionaux (LCID) Windows de classement. Valeur LCID (au format décimal).

Type de données de base : int
MaxSizeInBytes Taille maximale de la base de données, en octets. S’applique à : Azure SQL Database, Azure Synapse Analytics.

Azure SQL Database et Azure Synapse Analytics : la valeur est basée sur SLO, sauf en cas d’achat de stockage supplémentaire.

vCore – La valeur est en incréments de 1 Go jusqu’à la taille maximale.

NULL : base de données non démarrée

Type de données de base : bigint
Récupération Mode de récupération de base de données FULL : Mode de restauration complète

BULK_LOGGED : mode de récupération utilisant les journaux de transactions

SIMPLE : Mode de récupération simple

Type de données de base : nvarchar(128)
ServiceObjective Décrit le niveau de performance de la base de données dans SQL Database ou Azure Synapse Analytics. Une des valeurs suivantes :

NULL : base de données non démarrée

Shared (pour l'édition Web/Business)

De base

S0

S1

S2

S3

P1

P2

P3

ElasticPool

Système (pour base de données master)

Type de données de base : nvarchar(32)
ServiceObjectiveId ID de l’objectif de service dans la SQL Database. uniqueidentifier qui identifie l’objectif de service.
SQLSortOrder ID d'ordre de tri SQL Server pris en charge dans les versions antérieures de SQL Server. 0 : la base de données utilise le classement Windows

>0 : ID d’ordre de tri SQL Server

NULL : entrée non valide ou base de données non démarrée

Type de données de base : tinyint
Statut État de la base de données. ONLINE : la base de données est disponible pour la requête.

Remarque : La fonction peut retourner un état ONLINE pendant que la base de données s’ouvre et qu’elle n’a pas encore été récupérée. Pour déterminer si une base de données ONLINE peut accepter les connexions, interrogez la propriété Collation de DATABASEPROPERTYEX. La base de données ONLINE peut accepter les connexions quand le classement de base de données retourne une valeur non NULL. Pour les bases de données AlwaysOn, interrogez les colonnes database_state ou database_state_desc de sys.dm_hadr_database_replica_states.

OFFLINE : la base de données a été explicitement mise hors connexion.

RESTORING : la restauration de la base de données a démarré.

RECOVERING : la récupération de la base de données a démarré et celle-ci n’est pas encore prête pour les requêtes.

SUSPECT : la base de données n’a pas été récupérée.

EMERGENCY : la base de données se trouve dans un état d’urgence en lecture seule. L'accès est limité aux membres sysadmin.

Type de données de base : nvarchar(128)
Updateability Indique si les données peuvent être modifiées. READ_ONLY : la base de données prend en charge les opérations de lecture de données, mais pas les modifications de données.

READ_WRITE : la base de données prend en charge les opérations de lecture et les modifications de données.

Type de données de base : nvarchar(128)
UserAccess Définit les utilisateurs autorisés à accéder à la base de données. SINGLE_USER : un seul utilisateur db_owner, dbcreator ou sysadmin à la fois

RESTRICTED_USER : uniquement les membres des rôles db_owner, dbcreator ou sysadmin

MULTI_USER : tous les utilisateurs

Type de données de base : nvarchar(128)
Version Numéro de version interne du code SQL Server avec lequel la base de données a été créée. Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. Numéro de version : la base de données est ouverte.

NULL : la base de données n’a pas démarré.

Type de données de base : int
ReplicaID ID de réplica associé à une base de données/un réplica hyperscale connecté. S'applique à: Azure SQL Database.

Il retourne uniquement l’ID de réplica pour une base de données/un réplica hyperscale connecté. Pour en savoir plus sur les types de réplicas, consultez Réplicas secondaires hyperscale.

NULL : il ne s’agit pas d’une base de données hyperscale, ou la base de données n’est pas démarrée.

Type de données de base : nvarchar(128)

Notes

1 Pour les bases de données qui font partie d’un groupe de disponibilité, LastGoodCheckDbTime retourne la date et l’heure de la dernière exécution réussie de DBCC CHECKDB sur le réplica principal, quel que soit le réplica à partir duquel vous avez exécuté la commande.

Types de retour

sql_variant

Exceptions

Retourne NULL en cas d’erreur ou si un appelant n’est pas autorisé à voir l’objet.

Dans SQL Server, un utilisateur peut voir uniquement les métadonnées des éléments sécurisables qui lui appartiennent ou pour lesquels il dispose d'un droit d'accès. Cette règle signifie que les fonctions intégrées générant des métadonnées, comme OBJECT_ID, peuvent retourner NULL si l’utilisateur ne dispose d’aucune autorisation sur l’objet. Pour plus d’informations, consultez Configuration de la visibilité des métadonnées.

Notes

DATABASEPROPERTYEX retourne un seul paramètre de propriété à la fois. Pour afficher plusieurs paramètres de propriété, utilisez la vue de catalogue sys.databases.

Exemples

R. Récupération de l'état de l'option de base de données AUTO_SHRINK

Cet exemple retourne l’état de l’option de base de données AUTO_SHRINK pour la base de données AdventureWorks.

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

Voici le jeu de résultats. Cela indique que la base de données AUTO_SHRINK est désactivée.

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

B. Récupération du classement par défaut d'une base de données

Cet exemple retourne plusieurs attributs de la base de données AdventureWorks.

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

Voici le jeu de résultats.

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

C. Utiliser DATABASEPROPERTYEX pour vérifier la connexion au réplica

Quand vous utilisez la fonctionnalité de scale-out en lecture d’Azure SQL Database, vous pouvez vérifier si vous êtes connecté à un réplica en lecture seule en exécutant la requête suivante dans le contexte de votre base de données. Elle retourne READ_ONLY quand vous êtes connecté à un réplica en lecture seule. De cette façon, vous pouvez également identifier quand une requête s’exécute sur un réplica en lecture seule.

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

Voir aussi

ALTER DATABASE (Transact-SQL)
États d’une base de données
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)