DATABASEPROPERTYEX (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Für eine angegebene Datenbank in SQL Server gibt diese Funktion die aktuelle Einstellung der angegebenen Datenbankoption oder -eigenschaft zurück.
Transact-SQL-Syntaxkonventionen
Syntax
DATABASEPROPERTYEX ( database , property )
Argumente
database
Ein Ausdruck, der den Namen der Datenbank angibt, für die DATABASEPROPERTYEX
Informationen über die angegebene Eigenschaft zurückgibt. database hat den Datentyp nvarchar(128) .
Für SQL-Datenbank erfordert DATABASEPROPERTYEX
den Namen der aktuellen Datenbank. Die Funktion gibt NULL für alle Eigenschaften zurück, wenn ein anderer Datenbankname angegeben wird.
property
Ein Ausdruck, der den Namen der zurückzugebenden Datenbankeigenschaft angibt. property hat den Datentyp varchar(128) und unterstützt einen der Werte in dieser Tabelle:
Hinweis
Wenn die Datenbank noch nicht gestartet wurde, wird für Aufrufe von DATABASEPROPERTYEX
NULL zurückgegeben, wenn DATABASEPROPERTYEX
diese Werte durch direkten Datenbankzugriff abruft, statt sie aus den Metadaten abzurufen. Eine Datenbank, für die AUTO_CLOSE auf ON festgelegt ist, ist als „nicht gestartet“ definiert.
Eigenschaft | BESCHREIBUNG | Zurückgegebener Wert |
---|---|---|
Sortierung | Standardsortierungsname der Datenbank | Sortierungsname NULL: Datenbank wird nicht gestartet. Basisdatentyp: nvarchar(128) |
ComparisonStyle | Die Windows-Vergleichsart der Sortierung. Verwenden Sie die folgenden Stilwerte, um eine Bitmap für den schlussendlichen ComparisonStyle-Wert zu erstellen: Groß-/Kleinschreibung ignorieren: 1 Akzente ignorieren: 2 Kana ignorieren: 65536 Breite ignorieren: 131072 Der Standardwert 196609 ist beispielsweise das Ergebnis der Kombination der Optionen, mit denen die Groß-/Kleinschreibung, Kana und die Breite ignoriert wird. |
Gibt die Vergleichsart zurück. Gibt für alle binären Sortierungen 0 zurück. Basisdatentyp: int |
Edition | Die Edition oder Dienstebene der Datenbank. | Gilt für: Azure SQL-Datenbank, Azure Synapse Analytics. Universell Unternehmenskritisch Basic Standard Premium System (für die master-Datenbank) NULL: Datenbank wird nicht gestartet. Basisdatentyp: nvarchar(64) |
IsAnsiNullDefault | Die Datenbank befolgt ISO-Regeln für das Zulassen von NULL-Werten. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAnsiNullsEnabled | Alle Vergleiche mit einem NULL-Wert werden zu einem unbekannten Wert ausgewertet. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAnsiPaddingEnabled | Zeichenfolgen werden vor dem Vergleich oder Einfügen auf dieselbe Länge aufgefüllt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAnsiWarningsEnabled | SQL Server gibt Fehler- oder Warnmeldungen aus, wenn Standardfehlerbedingungen auftreten. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsArithmeticAbortEnabled | Abfragen werden beendet, wenn während der Abfrageausführung ein Überlauffehler oder ein Fehler aufgrund einer Division durch Null auftritt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAutoClose | Die Datenbank wird ordnungsgemäß heruntergefahren, und Ressourcen werden freigegeben, nachdem der letzte Benutzer die Anwendung beendet hat. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAutoCreateStatistics | Der Abfrageoptimierer erstellt Statistiken für einzelne Spalten nach Bedarf, um die Abfrageleistung zu verbessern. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAutoCreateStatisticsIncremental | Automatisch erstellte Statistiken für einzelne Spalten sind inkrementell, falls möglich. | Gilt für: SQL Server 2014 (12.x) und höher. 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAutoShrink | Datenbankdateien sind Kandidaten für das automatische periodische Verkleinern. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsAutoUpdateStatistics | Wenn in einer Abfrage vorhandene Statistiken verwendet werden, die möglicherweise veraltet sind, aktualisiert der Abfrageoptimierer diese Statistiken. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsClone | Die Datenbank ist nur eine Kopie der Schemas und Statistiken einer Benutzerdatenbank, die mit DBCC CLONEDATABASE erstellt wurde. Weitere Informationen finden Sie in diesem Microsoft Support-Artikel. | Gilt für: SQL Server 2014 (12.x) SP2 und höher. 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsCloseCursorsOnCommitEnabled | Wenn für eine Transaktion ein Commit ausgeführt wird, werden alle geöffneten Cursor geschlossen. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsDatabaseSuspendedForSnapshotBackup | Die Datenbank wird gesperrt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsFulltextEnabled | Die Datenbank ist für die Volltext- und semantische Indizierung aktiviert. | Gilt für: SQL Server 2008 (10.0.x) und höher. 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int Hinweis: Der Wert dieser Eigenschaft hat jetzt keine Auswirkungen. In Benutzerdatenbanken ist die Volltextsuche standardmäßig aktiviert. In einer zukünftigen Version von SQL Server wird diese Eigenschaft entfernt. Verwenden Sie diese Eigenschaft nicht beim Entwickeln neuer Anwendungen, und ändern Sie Anwendungen, in denen diese Eigenschaft zurzeit verwendet wird, so bald wie möglich. |
IsInStandBy | Die Datenbank ist im Schreibschutzmodus online. Die Wiederherstellung des Protokolls ist zulässig. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsLocalCursorsDefault | Cursordeklarationen werden standardmäßig auf LOCAL festgelegt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsMemoryOptimizedElevateToSnapshotEnabled | Auf speicheroptimierte Tabellen wird mit der SNAPSHOT-Isolation zugegriffen, wenn die Sitzungseinstellung TRANSACTION ISOLATION LEVEL auf READ COMMITTED, READ UNCOMMITTED oder eine niedrigere Isolationsstufe festgelegt ist. | Gilt für: SQL Server 2014 (12.x) und höher. 1: TRUE 0: FALSE Basisdatentyp: int |
IsMergePublished | SQL Server unterstützt Datenbanktabellenveröffentlichung für Mergereplikation, wenn die Replikation installiert ist. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsNullConcat | Der Operand für die NULL-Verkettung ergibt NULL. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsNumericRoundAbortEnabled | Fehler werden generiert, wenn ein Genauigkeitsverlust in Ausdrücken auftritt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsParameterizationForced | Die SET-Option PARAMETERIZATION wurde für die Datenbank auf FORCED festgelegt. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe |
IsQuotedIdentifiersEnabled | Für Bezeichner sind doppelte Anführungszeichen zulässig. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsPublished | Wenn Replikation installiert ist, unterstützt SQL Server Datenbanktabellenveröffentlichung für Momentaufnahme- oder Transaktionsreplikation. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsRecursiveTriggersEnabled | Das rekursive Auslösen von Triggern ist aktiviert. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsSubscribed | Die Datenbank wurde für eine Veröffentlichung abonniert. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsSyncWithBackup | Die Datenbank ist entweder eine veröffentlichte oder eine Verteilungsdatenbank, und für sie wird ein Wiederherstellen unterstützt, bei dem Transaktionsreplikation nicht unterbrochen wird. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsTornPageDetectionEnabled | SQL Server-Datenbank-Engine erkennt unvollständige E/A-Vorgänge, die durch Stromausfälle oder andere Systemunterbrechungen verursacht wurden. | 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsVerifiedClone | Die Datenbank ist nur eine Kopie der Schemas und Statistiken einer Benutzerdatenbank, die mit der DBBC CLONEDATABASE-Option WITH VERIFY_CLONEDB erstellt wurde. Weitere Informationen finden Sie im folgenden Microsoft Support-Artikel. | Gilt für: Ab SQL Server 2016 (13.x) SP2. 1: TRUE 0: FALSE NULL: Ungültige Eingabe Basisdatentyp: int |
IsXTPSupported | Gibt an, ob die Datenbank das In-Memory-OLTP unterstützt. Beispiele hierfür sind die Erstellung und Verwendung speicheroptimierter Tabellen und nativ kompilierter Module. Spezifisch für SQL Server: IsXTPSupported ist unabhängig von der Existenz von MEMORY_OPTIMIZED_DATA-Dateigruppen, die für die Erstellung von In-Memory-OLTP-Objekten benötigt werden. |
Gilt für: SQL Server (SQL Server 2016 (13.x) und höher) und Azure SQL-Datenbank. 1: TRUE 0: FALSE NULL: Ungültige Eingabe, ein Fehler oder nicht anwendbar Basisdatentyp: int |
LastGoodCheckDbTime | Datum und Uhrzeit der letzten erfolgreichen Ausführung von „DBCC CHECKDB“ in der angegebenen Datenbank. 1 Wenn „DBCC CHECKDB“ in einer Datenbank noch nicht ausgeführt wurde, wird „1900-01-01 00:00:00.000“ zurückgegeben. | Gilt für: SQL Server 2016 (13.x) beginnend mit SP2. SQL Server 2017 (14.x) beginnend mit CU9. SQL Server 2019 (15.x) oder höher. Azure SQL-Datenbank. Ein datetime-Wert NULL: Ungültige Eingabe Basisdatentyp: datetime |
LCID | Der zur Sortierung verwendete Windows-Gebietsschemabezeichner (LCID, Locale Identifier). | LCID-Wert (im Dezimalformat). Basisdatentyp: int |
MaxSizeInBytes | Maximale Datenbankgröße in Bytes. | Gilt für: Azure SQL-Datenbank, Azure Synapse Analytics. Azure SQL-Datenbank und Azure Synapse Analytics: Der Wert basiert auf SLO, sofern kein zusätzlicher Speicher erworben wurde. vCore: Der Wert wird in Inkrementen von 1 GB bis zur Maximalgröße erhöht. NULL: Datenbank wird nicht gestartet. Basisdatentyp: bigint |
Wiederherstellung | Datenbank-Wiederherstellungsmodell | FULL: Vollständiges Wiederherstellungsmodell BULK_LOGGED: Massenprotokolliertes Modell SIMPLE: Einfaches Wiederherstellungsmodell Basisdatentyp: nvarchar(128) |
ServiceObjective | Beschreibt die Leistungsstufe der Datenbank in SQL-Datenbank oder Azure Synapse Analytics. | Einer der folgenden Werte: NULL = Die Datenbank wurde nicht gestartet. Freigegeben (für Web/Business-Editionen) Basic S0 S1 S2 S3 P1 P2 P3 ElasticPool System (für die master-Datenbank) Basisdatentyp: nvarchar(32) |
ServiceObjectiveId | Dies ist die ID des Dienstziels in SQL-Datenbank. | uniqueidentifier, die das Dienstziel identifiziert. |
SQLSortOrder | Die ID der SQL Server-Sortierreihenfolge, die in früheren Versionen von SQL Server unterstützt wurde. | 0: In der Datenbank wird Windows-Sortierung verwendet. >0: ID der SQL Server-Sortierreihenfolge NULL: Ungültige Eingabe, oder die Datenbank wurde nicht gestartet. Basisdatentyp: tinyint |
Status | Der Status der Datenbank. | ONLINE: Die Datenbank ist für Abfragen verfügbar. Hinweis: Die Funktion gibt möglicherweise den ONLINE-Status zurück, während die Datenbank geöffnet wird und noch nicht wiederhergestellt wurde. Fragen Sie die Collation-Eigenschaft von DATABASEPROPERTYEX ab, um zu ermitteln, ob eine ONLINE-Datenbank Verbindungen akzeptieren kann. Die ONLINE-Datenbank kann Verbindungen akzeptieren, wenn die Datenbanksortierung einen Wert ungleich NULL zurückgibt. Fragen Sie bei Always On-Datenbanken die „database_state“- oder die „database_state_desc“-Spalte von sys.dm_hadr_database_replica_states ab.OFFLINE: Die Datenbank wurde explizit offline geschaltet. RESTORING: Die Wiederherstellung der Datenbank wurde gestartet. RECOVERING: Die Wiederherstellung der Datenbank wurde gestartet, aber die Datenbank ist noch nicht für Abfragen bereit. SUSPECT: Die Datenbank wurde nicht wiederhergestellt. EMERGENCY: Die Datenbank befindet sich im schreibgeschützten Notfallmodus. Der Zugriff ist auf sysadmin-Mitglieder beschränkt. Basisdatentyp: nvarchar(128) |
Updateability | Zeigt an, ob Daten geändert werden können. | READ_ONLY: Für die Datenbank werden Datenlese- aber keine Datenänderungsvorgänge unterstützt. READ_WRITE: Für die Datenbank werden Datenlese- und Datenänderungsvorgänge unterstützt. Basisdatentyp: nvarchar(128) |
UserAccess | Zeigt an, welche Benutzer auf die Datenbank zugreifen können. | SINGLE_USER: Immer nur jeweils ein „db_owner“-, „dbcreator“- oder „sysadmin“-Benutzer RESTRICTED_USER: Nur Mitglieder aus einer der Rollen „db_owner“, „dbcreator“ oder „sysadmin“ MULTI_USER: Alle Benutzer Basisdatentyp: nvarchar(128) |
Version | Die interne Versionsnummer des SQL Server -Codes, mit dem die Datenbank erstellt wurde. Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt. | Versionsnummer: Die Datenbank ist geöffnet. NULL: Die Datenbank wurde nicht gestartet. Basisdatentyp: int |
ReplicaID | Die Replikat-ID einer verbundenen Hyperskalendatenbank/eines Replikats. | Gilt für: Azure SQL-Datenbank. Sie gibt nur die Replikat-ID einer verbundenen Hyperscale-Datenbank/eines Replikats zurück. Weitere Informationen zu Replikattypen finden Sie unter Hyperscale-sekundäre Replikate . NULL: Es handelt sich nicht um eine Hyperskalendatenbank, oder die Datenbank wird nicht gestartet. Basisdatentyp: nvarchar(128) |
Hinweis
1 Für Datenbanken, die Teil einer Verfügbarkeitsgruppe sind, gibt LastGoodCheckDbTime
das Datum und die Uhrzeit der letzten erfolgreichen Ausführung von DBCC CHECKDB auf dem primären Replikat zurück, egal von welchem Replikat Sie den Befehl ausführen.
Rückgabetypen
sql_variant
Ausnahmen
Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.
In SQL Server kann ein Benutzer nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Diese Regel bedeutet, dass Metadaten ausgebende, integrierte Funktionen (z. B. OBJECT_ID
) möglicherweise NULL zurückgeben, wenn die Benutzer*innen über keine Berechtigungen für das Objekt verfügen. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.
Bemerkungen
DATABASEPROPERTYEX
gibt immer nur jeweils eine Eigenschaftseinstellung zurück. Verwenden Sie die sys.databases-Katalogsicht, um mehrere Eigenschaftseinstellungen anzuzeigen.
Beispiele
A. Abrufen des Status der Datenbankoption AUTO_SHRINK
In diesem Beispiel wird der Status der AUTO_SHRINK-Datenbankoption für die AdventureWorks
-Datenbank zurückgegeben.
SELECT DATABASEPROPERTYEX('AdventureWorks2022', 'IsAutoShrink');
Hier sehen Sie das Ergebnis. Dies gibt an, dass AUTO_SHRINK auf OFF festgelegt ist.
------------------
0
B. Abrufen der Standardsortierung für eine Datenbank
In diesem Beispiel werden mehrere Attribute der AdventureWorks
-Datenbank zurückgegeben.
SELECT
DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,
DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition,
DATABASEPROPERTYEX('AdventureWorks2022', 'ServiceObjective') AS ServiceObjective,
DATABASEPROPERTYEX('AdventureWorks2022', 'MaxSizeInBytes') AS MaxSizeInBytes
Hier sehen Sie das Ergebnis.
Collation Edition ServiceObjective MaxSizeInBytes
---------------------------- ------------- ---------------- --------------
SQL_Latin1_General_CP1_CI_AS DataWarehouse DW1000 5368709120
C. Verwenden von DATABASEPROPERTYEX zum Überprüfen der Verbindung mit dem Replikat
Wenn Sie das Feature für horizontale Skalierung von Azure SQL-Datenbank verwenden, können Sie überprüfen, ob Sie mit einem schreibgeschützten Replikat verbunden sind, indem Sie die folgende Abfrage im Kontext Ihrer Datenbank ausführen. Bei Verbindung mit einem schreibgeschützten Replikat wird READ_ONLY zurückgegeben. Auf diese Weise können Sie auch identifizieren, ob eine Abfrage auf einem schreibgeschützten Replikat ausgeführt wird.
SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');
Weitere Informationen
ALTER DATABASE (Transact-SQL)
Datenbankstatus
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)