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)