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)