Condividi tramite


DATABASEPROPERTYEX (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Per un database specificato in SQL Server, questa funzione restituisce l'impostazione corrente dell'opzione o proprietà del database specificata.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

DATABASEPROPERTYEX ( database , property )  

Argomenti

database
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. Se viene specificato un nome di database diverso, restituisce NULL per tutte le proprietà.

property
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 restituiranno NULL se DATABASEPROPERTYEX recupera tali valori in base all'accesso diretto al database, anziché recuperarli dai metadati. Un database con l'opzione AUTO_CLOSE impostata su ON o comunque non in linea è considerato come non avviato.

Proprietà Descrizione Valore restituito
Regole di confronto Nome delle regole di confronto predefinite per il database. Nome delle regole di confronto.

NULL: il database non viene avviato.

Tipo di dati di base: nvarchar(128)
ComparisonStyle Stile di confronto di Windows per le regole di confronto. Usare i seguenti valori di stile per creare una mappa di bit per il valore ComparisonStyle terminato:

Ignora maiuscole/minuscole: 1
Ignora accento: 2
Ignora kana: 65536
Ignora larghezza: 131072

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

Restituisce 0 per tutte le regole di confronto binarie.

Tipo di dati di base: int
Edition Edizione o livello di servizio del database. Si applica a: Database SQL di Azure, Azure Synapse Analytics.



Utilizzo generico

Business Critical

Di base

Standard

Premium

System (per il database master)

NULL: il database non viene avviato.

Tipo di dati di base: nvarchar(64)
IsAnsiNullDefault Il database segue le regole ISO per il supporto dei valori Null. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAnsiNullsEnabled Tutti i confronti con un valore Null restituiscono unknown. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAnsiPaddingEnabled Le stringhe vengono riempite in modo che abbiano tutte la stessa lunghezza prima dell'esecuzione di confronti o inserimenti. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAnsiWarningsEnabled SQL Server visualizza messaggi di errore o di avviso se si verificano condizioni di errore standard. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsArithmeticAbortEnabled Le query vengono interrotte se durante l'esecuzione si verifica un errore di overflow o di divisione per zero. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAutoClose Il database viene chiuso correttamente e le risorse corrispondenti vengono liberate dopo la disconnessione dell'ultimo utente. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAutoCreateStatistics In Query Optimizer vengono create statistiche di colonna singola, se necessario, per migliorare le prestazioni di esecuzione delle query. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAutoCreateStatisticsIncremental Se possibile, le statistiche a colonna singola create automaticamente sono incrementali. Si applica a: SQL Server 2014 (12.x) e versioni successive.

1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAutoShrink I file di database sono sottoposti periodicamente a compattazione automatica. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsAutoUpdateStatistics Quando una query usa statistiche esistenti potenzialmente non aggiornate, Query Optimizer aggiorna tali statistiche. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsClone Il database è una copia di un database utente contenente solo schema e statistiche, creato con DBCC CLONEDATABASE. Vedere questo articolo del supporto tecnico Microsoft. Si applica a: SQL Server 2014 (12.x) SP2 e versioni successive.

1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsCloseCursorsOnCommitEnabled Quando viene eseguito il commit di una transazione, tutti i cursori aperti vengono chiusi. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsDatabaseSuspendedForSnapshotBackup Il database è sospeso. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsFulltextEnabled Il database è abilitato per l'indicizzazione full-text e semantica. Si applica a: SQL Server 2008 (10.0.x) e versioni successive.



1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int

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à in un nuovo progetto di sviluppo e modificare prima possibile le applicazioni in cui viene attualmente usata.
IsInStandBy Il database è online in sola lettura e consente il ripristino di log. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsLocalCursorsDefault Le dichiarazioni del cursore hanno come impostazione predefinita LOCAL. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsMemoryOptimizedElevateToSnapshotEnabled Le tabelle con ottimizzazione per la memoria sono accessibili tramite l'isolamento SNAPSHOT quando l'impostazione della sessione HIGH TRANSACTION ISOLATION LEVEL è impostata su READ COMMITTED, READ UNCOMMITTED o su un livello di isolamento inferiore. Si applica a: SQL Server 2014 (12.x) e versioni successive.



1: TRUE

0: FALSE

Tipo di dati di base: int
IsMergePublished Se la replica è installata, SQL Server supporta la pubblicazione delle tabelle del database per l'esecuzione di una replica di tipo merge. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsNullConcat Un operando di concatenazione Null produce un valore NULL. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsNumericRoundAbortEnabled Se si verifica una perdita di precisione nelle espressioni, vengono generati errori. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsParameterizationForced L'opzione SET dell'hint di database PARAMETERIZATION è impostata su FORCED. 1: TRUE

0: FALSE

NULL: input non valido
IsQuotedIdentifiersEnabled L'uso delle virgolette doppie negli identificatori è consentito. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsPublished Se la replica è installata, SQL Server supporta la pubblicazione delle tabelle del database per l'esecuzione di una replica snapshot o transazionale. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsRecursiveTriggersEnabled L'attivazione ricorsiva dei trigger è abilitata. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsSubscribed Il database è sottoscritto a una pubblicazione. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsSyncWithBackup Indica se il database è un database pubblicato o di distribuzione e se supporta un ripristino senza ripercussioni sulla replica transazionale. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsTornPageDetectionEnabled Il motore di database di SQL Server rileva operazioni di I/O incomplete causate da interruzioni di alimentazione o altre interruzioni del sistema. 1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsVerifiedClone Il database è una copia di un database utente contenente solo schema e statistiche, creato con l'opzione WITH VERIFY_CLONEDB di DBCC CLONEDATABASE. Per altre informazioni, vedere questo articolo del supporto tecnico Microsoft. Si applica a: SQL Server, a partire da SQL Server 2016 (13.x) SP2.



1: TRUE

0: FALSE

NULL: input non valido

Tipo di dati di base: int
IsXTPSupported 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 filegroup MEMORY_OPTIMIZED_DATA, necessario per la creazione di oggetti OLTP In memoria.
Si applica a: SQL Server (SQL Server 2016 (13.x) e versioni successive) e Database SQL di Azure.

1: TRUE

0: FALSE

NULL: input non valido, errore o non applicabile

Tipo di dati di base: int
LastGoodCheckDbTime Data e ora dell'ultimo DBCC CHECKDB riuscito eseguito nel database specificato.1 Se DBCC CHECKDB non è stato eseguito in un database, viene restituito 1900-01-01 00:00:00.000. Si applica a: SQL Server 2016 (13.x) a partire da SP2.
SQL Server 2017 (14.x) a partire da CU9.
SQL Server 2019 (15.x) o versione successiva.
database SQL di Azure.

Valore datetime

NULL: input non valido

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

Tipo di dati di base: int
MaxSizeInBytes Dimensioni massime del database in byte. Si applica a: Database SQL di Azure, Azure Synapse Analytics.

Database SQL di Azure e Azure Synapse Analytics: il valore è basato su SLO, a meno che non sia stata acquistata una risorsa di archiviazione aggiuntiva.

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

NULL: il database non viene avviato

Tipo di dati di base: bigint
Ripristino Modello di recupero del database FULL: modello di recupero con registrazione completa

BULK_LOGGED: modello di recupero con registrazione minima delle operazioni bulk

SIMPLE: modello di recupero con registrazione minima

Tipo di dati di base: nvarchar(128)
ServiceObjective Descrive il livello di prestazioni del database nel database SQL o in Azure Synapse Analytics. Uno dei valori seguenti:

Null = database non avviato

Shared (per le edizioni Web/Business)

Di base

S0

S1

S2

S3

P1

P2

P3

ElasticPool

System (per il database master)

Tipo di dati di base: nvarchar(32)
ServiceObjectiveId ID dell'obiettivo di servizio in database SQL. uniqueidentifier che identifica l'obiettivo di servizio.
SQLSortOrder 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 del tipo di ordinamento di SQL Server

NULL: input non valido o database non avviato

Tipo di dati di base: tinyint
Status Stato del database. ONLINE: il database è disponibile per le query.

Nota: la funzione può restituire lo stato ONLINE mentre il database viene aperto e non è ancora stato ripristinato. Per sapere se un database ONLINE è in grado di accettare connessioni, eseguire una query sulla proprietà Collation di DATABASEPROPERTYEX. Il database ONLINE può accettare le connessioni quando usando le regole di confronto del database viene restituito un valore non Null. Per i database Always On, eseguire una query sulle colonne database_state o database_state_desc di sys.dm_hadr_database_replica_states.

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

RESTORING: è stato avviato il ripristino del database.

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

SUSPECT: il database non è stato ripristinato.

EMERGENCY: il database è in modalità di emergenza con accesso in sola lettura. L'accesso è limitato ai membri del ruolo sysadmin.

Tipo di dati di base: nvarchar(128)
Updateability Indica se è possibile modificare i dati. READ_ONLY: il database supporta la lettura ma non la modifica dei dati.

READ_WRITE: il database supporta la lettura e la modifica dei dati.

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

RESTRICTED_USER: solo i membri dei ruoli db_owner, dbcreator e sysadmin

MULTI_USER: tutti gli utenti

Tipo di dati di base: nvarchar(128)
Versione 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: il database non è stato avviato.

Tipo di dati di base: int
ReplicaID ID di replica di un database/replica hyperscale connesso. Si applica a: database SQL di Azure.

Restituisce solo l'ID di replica di un database/replica iperscalabilità connessa. Per altre informazioni sui tipi di replica, vedere Repliche secondarie Hyperscale.

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

Tipo di dati di base: nvarchar(128)

Nota

1 Per i database che fanno parte di un gruppo di disponibilità, LastGoodCheckDbTime restituisce la data e ora dell'ultima esecuzione con esito positivo di DBCC CHECKDB nella replica primaria, indipendentemente dalla replica da cui si esegue il comando.

Tipi restituiti

sql_variant

Eccezioni

Restituisce NULL in caso di errore o se un chiamante non ha l'autorizzazione necessaria 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 che generano 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

R. Recupero dello stato dell'opzione AUTO_SHRINK del database

Questo esempio restituisce lo stato dell'opzione di database AUTO_SHRINK per il database AdventureWorks.

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

Il set di risultati è il seguente. Ciò indica che AUTO_SHRINK è disattivato.

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

B. Recupero delle 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 database SQL di Azure leggere la funzionalità di scalabilità orizzontale, è possibile verificare se si è connessi a una replica di sola lettura o meno eseguendo la query seguente nel contesto del database. Verrà 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'); 

Vedi anche

ALTER DATABASE (Transact-SQL)
Stati del database
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)