Condividi tramite


DATABASEPROPERTYEX (Transact-SQL)

Si applica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema di Piattaforma Analitica (PDW)Database SQL in Microsoft Fabric

Per un database specificato in SQL Server, la DATABASEPROPERTYEX funzione restituisce l'impostazione corrente dell'opzione o della proprietà di database specificata.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

DATABASEPROPERTYEX ( database , property )

Argomenti

banca dati

Espressione che specifica il nome del database per il quale DATABASEPROPERTYEX restituisce le informazioni sulla proprietà denominata. database ha il tipo di dati nvarchar(128).

Per il database SQL DATABASEPROPERTYEX richiede il nome del database corrente. Restituisce NULL per tutte le proprietà se viene assegnato un nome di database diverso.

proprietà

Espressione che specifica il nome della proprietà del database da restituire. property ha il tipo di dati varchar(128) e supporta uno dei valori in questa tabella:

Nota

Se il database non è ancora stato avviato, le chiamate a DATABASEPROPERTYEX restituiscono NULL se DATABASEPROPERTYEX recupera tali valori in base all'accesso diretto al database, anziché recuperarli dai metadati. Un database con AUTO_CLOSE impostato su ON, o in caso contrario offline, viene definito come 'non avviato'.

Proprietà Descrizione Valore restituito
Collation

Tipo di dati: nvarchar(128)
Nome delle regole di confronto predefinite per il database. Nome delle regole di confronto. Se NULL, il database non viene avviato.
ComparisonStyle

Tipo di dati: int
Stile di confronto di Windows per le regole di confronto. Usare i valori di stile seguenti per compilare una bitmap per il valore finito ComparisonStyle :

- 1: ignora maiuscole/minuscole
- 2: ignora l'accento
- 65536: ignora kana
- 131072: ignora larghezza

Ad esempio, il valore predefinito di 196609 è il risultato della combinazione delle maiuscole e minuscole ignorate, ignora kana e ignora le opzioni di larghezza .
Restituisce lo stile di confronto.

Restituisce 0 per tutte le regole di confronto binarie.
Edition

Tipo di dati: nvarchar(64)
Edizione o livello di servizio del database. - General Purpose
- Business Critical
- Basic
- Standard
- Premium
- System (per master il database)
- FabricSQLDB: database SQL in Microsoft Fabric
- NULL: il database non viene avviato.

Si applica a: Azure SQL Database, SQL database in Microsoft Fabric, Azure Synapse Analytics.
IsAnsiNullDefault

Tipo di dati: int
Il database segue le regole ISO per consentire NULL i valori. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAnsiNullsEnabled

Tipo di dati: int
Tutti i confronti con un NULL oggetto restituiscono sconosciuti. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAnsiPaddingEnabled

Tipo di dati: int
Le stringhe vengono riempite in modo che abbiano tutte la stessa lunghezza prima dell'esecuzione di confronti o inserimenti. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAnsiWarningsEnabled

Tipo di dati: int
SQL Server visualizza messaggi di errore o di avviso se si verificano condizioni di errore standard. - 1:Vero
- 0:Falso
- NULL: input non valido
IsArithmeticAbortEnabled

Tipo di dati: int
Le query vengono interrotte se durante l'esecuzione si verifica un errore di overflow o di divisione per zero. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAutoClose

Tipo di dati: int
Il database viene chiuso correttamente e le risorse corrispondenti vengono liberate dopo la disconnessione dell'ultimo utente. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAutoCreateStatistics

Tipo di dati: int
In Query Optimizer vengono create statistiche di colonna singola, se necessario, per migliorare le prestazioni di esecuzione delle query. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAutoCreateStatisticsIncremental

Tipo di dati: int
Se possibile, le statistiche a colonna singola create automaticamente sono incrementali. - 1:Vero
- 0:Falso
- NULL: input non valido

Si applica a: SQL Server 2014 (12.x) e versioni successive.
IsAutoShrink

Tipo di dati: int
I file di database sono sottoposti periodicamente a compattazione automatica. - 1:Vero
- 0:Falso
- NULL: input non valido
IsAutoUpdateStatistics

Tipo di dati: int
Quando una query usa statistiche esistenti potenzialmente non aggiornate, Query Optimizer aggiorna tali statistiche. - 1:Vero
- 0:Falso
- NULL: input non valido
IsClone

Tipo di dati: int
Il database è una copia solo di schema e statistiche di un database utente creato con DBCC CLONEDATABASE. - 1:Vero
- 0:Falso
- NULL: input non valido

Si applica a: SQL Server 2014 (12.x) SP2 e versioni successive.
IsCloseCursorsOnCommitEnabled

Tipo di dati: int
Quando viene eseguito il commit di una transazione, tutti i cursori aperti vengono chiusi. - 1:Vero
- 0:Falso
- NULL: input non valido
IsDatabaseSuspendedForSnapshotBackup

Tipo di dati: int
Il database è sospeso. - 1:Vero
- 0:Falso
- NULL: input non valido
IsFulltextEnabled

Tipo di dati: int
Il database è abilitato per l'indicizzazione full-text e semantica. - 1:Vero
- 0:Falso
- NULL: input non valido

Si applica a: SQL Server 2008 (10.0.x) e versioni successive.

Nota: ora il valore di questa proprietà non ha alcun effetto. I database utente sono sempre abilitati per la ricerca full-text. La proprietà verrà rimossa in una versione futura di SQL Server. Non usare questa proprietà nel nuovo lavoro di sviluppo e modificare le applicazioni che attualmente usano questa proprietà il prima possibile.
IsInStandBy

Tipo di dati: int
Il database è online in sola lettura e consente il ripristino di log. - 1:Vero
- 0:Falso
- NULL: input non valido
IsLocalCursorsDefault

Tipo di dati: int
Per impostazione predefinita, le dichiarazioni di cursore sono LOCAL. - 1:Vero
- 0:Falso
- NULL: input non valido
IsMemoryOptimizedElevateToSnapshotEnabled

Tipo di dati: int
È possibile accedere alle tabelle ottimizzate per la memoria usando SNAPSHOT l'isolamento, quando l'impostazione TRANSACTION ISOLATION LEVEL della sessione è impostata su READ COMMITTED, READ UNCOMMITTEDo un livello di isolamento inferiore. - 1:Vero
- 0:Falso

Si applica a: SQL Server 2014 (12.x) e versioni successive.
IsMergePublished

Tipo di dati: int
Se la replica è installata, SQL Server supporta la pubblicazione delle tabelle del database per l'esecuzione di una replica di tipo merge. - 1:Vero
- 0:Falso
- NULL: input non valido
IsNullConcat

Tipo di dati: int
L'operando di concatenazione Null restituisce NULL. - 1:Vero
- 0:Falso
- NULL: input non valido
IsNumericRoundAbortEnabled

Tipo di dati: int
Se si verifica una perdita di precisione nelle espressioni, vengono generati errori. - 1:Vero
- 0:Falso
- NULL: input non valido
IsOptimizedLockingOn

Tipo di dati: int
Il blocco ottimizzato è abilitato per il database. - 1:Vero
- 0:Falso
- NULL: non disponibile

Si applica a: SQL Server 2025 (17.x) e versioni successive, Azure SQL Database, Azure SQL Managed InstanceAUTD e database SQL in Microsoft Fabric.
IsParameterizationForced

Tipo di dati: int
PARAMETERIZATION l'opzione di database SET è FORCED. - 1:Vero
- 0:Falso
- NULL: input non valido
IsQuotedIdentifiersEnabled

Tipo di dati: int
L'uso delle virgolette doppie negli identificatori è consentito. - 1:Vero
- 0:Falso
- NULL: input non valido
IsPublished

Tipo di dati: int
Se la replica è installata, SQL Server supporta la pubblicazione delle tabelle del database per l'esecuzione di una replica snapshot o transazionale. - 1:Vero
- 0:Falso
- NULL: input non valido
IsRecursiveTriggersEnabled

Tipo di dati: int
L'attivazione ricorsiva dei trigger è abilitata. - 1:Vero
- 0:Falso
- NULL: input non valido
IsSubscribed

Tipo di dati: int
Il database è sottoscritto a una pubblicazione. - 1:Vero
- 0:Falso
- NULL: input non valido
IsSyncWithBackup

Tipo di dati: int
Il database è un database pubblicato o un database di distribuzione e supporta un ripristino che non interrompe la replica transazionale. - 1:Vero
- 0:Falso
- NULL: input non valido
IsTornPageDetectionEnabled

Tipo di dati: int
Il motore di database di SQL Server rileva operazioni di I/O incomplete causate da interruzioni di alimentazione o altre interruzioni del sistema. - 1:Vero
- 0:Falso
- NULL: input non valido
IsVerifiedClone

Tipo di dati: int
Il database è una copia solo dello schema e delle statistiche di un database utente, creata usando l'opzione WITH VERIFY_CLONEDB di DBCC CLONEDATABASE. - 1:Vero
- 0:Falso
- NULL: input non valido

Si applica a: SQL Server 2016 (13.x) SP2 e versioni successive.
IsXTPSupported

Tipo di dati: int
Indica se il database supporta OLTP in memoria. Ad esempio, la creazione e l'uso di tabelle ottimizzate per la memoria e moduli compilati in modo nativo.

Specifico di SQL Server:

IsXTPSupported è indipendente dall'esistenza di qualsiasi MEMORY_OPTIMIZED_DATA filegroup, necessario per la creazione di In-Memory oggetti OLTP.
- 1:Vero
- 0:Falso
- NULL: input non valido, errore o non applicabile

Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure.
LastGoodCheckDbTime

Tipo di dati: datetime
Data e ora dell'ultimo esito positivo DBCC CHECKDB eseguito nel database specificato. Se DBCC CHECKDB non è stato eseguito in un database, 1900-01-01 00:00:00.000 viene restituito . Per i database che fanno parte di un gruppo di disponibilità, LastGoodCheckDbTime restituisce la data e l'ora dell'ultima DBCC CHECKDB esecuzione corretta nella replica primaria, indipendentemente dalla replica da cui si esegue il comando. NULL: input non valido

Si applica a: SQL Server 2016 (13.x) SP2, SQL Server 2017 (14.x) CU9, SQL Server 2019 (15.x) e versioni successive, Azure SQL Database e database SQL in Microsoft Fabric.
LCID

Tipo di dati: int
Identificatore delle impostazioni locali (LCID) di Windows per le regole di confronto. Valore LCID, in formato decimale.
MaxSizeInBytes

Tipo di dati: bigint
Dimensioni massime del database in byte. - Database SQL di Azure e Azure Synapse Analytics: il valore è basato su SLO, a meno che non sia stato acquistato spazio di archiviazione aggiuntivo.

- vCore: il valore è espresso in incrementi di 1 GB fino a dimensioni massime.

- NULL: database non avviato

Si applica a: Azure SQL Database, SQL database in Microsoft Fabric e Azure Synapse Analytics.
Recovery

Tipo di dati: nvarchar(128)
Modello di recupero del database. - FULL: modello di recupero con registrazione completa
- BULK_LOGGED: modello con registrazione minima delle operazioni bulk
- SIMPLE: modello di recupero con registrazione minima
ServiceObjective

Tipo di dati: nvarchar(32)
Descrive il livello di prestazioni del database in SQL Database, SQL database in Microsoft Fabric o Azure Synapse Analytics. Uno dei valori seguenti:

- NULL: database non avviato
- Shared (per le edizioni Web/Business)
- Basic
- S0
- S1
- S2
- S3
- P1
- P2
- P3
- ElasticPool
- System (per master il database)
- FabricSQLDB: database SQL in Microsoft Fabric
ServiceObjectiveId

Tipo di dati: uniqueidentifier
ID dell'obiettivo di servizio in database SQL. ID dell'obiettivo del servizio.
SQLSortOrder

Tipo di dati: tinyint
ID dell'ordinamento di SQL Server supportato nelle versioni precedenti di SQL Server. - 0: il database usa le regole di confronto di Windows

- >0: ID dell'ordinamento di SQL Server

- NULL: input non valido o database non avviato
Status

Tipo di dati: nvarchar(128)
Stato del database. ONLINE: il database è disponibile per la query.

Nota: La funzione potrebbe restituire uno stato durante ONLINE l'apertura del database e non è ancora stato ripristinato. Per identificare se un ONLINE database può accettare connessioni, eseguire una query sulla Collation proprietà di DATABASEPROPERTYEX. Il ONLINE database può accettare connessioni quando le regole di confronto del database restituiscono un valore non Null. Per i database AlwaysOn, eseguire una query sulle database_state colonne o database_state_desc di sys.dm_hadr_database_replica_states.

- OFFLINE: il database è stato portato offline in modo esplicito.

- RESTORING: il ripristino del database è stato avviato.

- RECOVERING: il ripristino del database è stato avviato e il database non è ancora pronto per le query.

- SUSPECT: il database non è stato ripristinato.

- EMERGENCY: il database si trova in uno stato di emergenza di sola lettura. L'accesso è limitato ai membri sysadmin
Updateability

Tipo di dati: nvarchar(128)
Indica se è possibile modificare i dati. READ_ONLY: il database supporta le letture dei dati, ma non le modifiche ai dati.

- READ_WRITE: il database supporta le letture e le modifiche dei dati.
UserAccess

Tipo di dati: nvarchar(128)
Specifica gli utenti autorizzati ad accedere al database. SINGLE_USER: un solo utente db_owner, dbcreator o sysadmin alla volta

- RESTRICTED_USER: solo i membri dei ruoli di db_owner, dbcreator o sysadmin

- MULTI_USER: tutti gli utenti
Version

Tipo di dati: int
Numero di versione interno del codice di SQL Server con cui è stato creato il database. Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. - Numero di versione: database aperto.

- NULL: database non avviato.
ReplicaID

Tipo di dati: nvarchar(128)
ID di replica di un database/replica hyperscale connesso. Restituisce solo l'ID di replica di un database/replica Hyperscale connesso. Per altre informazioni sui tipi di replica, vedere Repliche secondarie Hyperscale.

- NULL: non un database con iperscalabilità o il database non viene avviato.

Si applica a: Hyperscale del database SQL di Azure.

Tipi restituiti

sql_variant

Eccezioni

Restituisce NULL in caso di errore o se un chiamante non dispone dell'autorizzazione per visualizzare l'oggetto.

In SQL Server un utente può visualizzare esclusivamente i metadati delle entità a sicurezza diretta di cui è proprietario o per cui ha ricevuto un'autorizzazione. Questa regola indica che le funzioni predefinite di creazione di metadati, ad OBJECT_ID esempio , possono restituire NULL se l'utente non dispone di autorizzazioni per l'oggetto. Per altre informazioni, vedere Configurazione della visibilità dei metadati.

Osservazioni:

DATABASEPROPERTYEX restituisce solo un'impostazione della proprietà alla volta. Per visualizzare più impostazioni della proprietà, usare la vista del catalogo sys.databases.

Esempi

Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.

R. Recuperare lo stato dell'opzione di database AUTO_SHRINK

In questo esempio viene restituito lo stato dell'opzione AUTO_SHRINK di database per il AdventureWorks database.

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

Il set di risultati è il seguente. Indica che AUTO_SHRINK è disattivato.

0

B. Recuperare le regole di confronto predefinite per un database

In questo esempio vengono restituiti vari attributi del database AdventureWorks.

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

Il set di risultati è il seguente.

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

C. Usare DATABASEPROPERTYEX per verificare la connessione alla replica

Quando si usa la funzionalità di scalabilità orizzontale del database SQL di Azure, è possibile verificare se si è connessi a una replica di sola lettura o meno eseguendo la query seguente nel contesto del database. Viene restituito READ_ONLY quando si è connessi a una replica di sola lettura. In questo modo, è anche possibile identificare quando una query è in esecuzione in una replica di sola lettura.

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