sys.tables (Transact-SQL)
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Gibt eine Zeile für jede Benutzertabelle in SQL Server zurück.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
<Geerbte Spalten> | Eine Liste der Spalten, die diese Sicht erbt, finden Sie unter sys.objects (Transact-SQL). | |
lob_data_space_id | int | Ein Wert ungleich 0 (null) ist die ID des Datenbereichs (Dateigruppe oder Partitionsschema), der die LOB-Binärdaten (Large Object) für diese Tabelle enthält. Beispiele für LOB-Datentypen sind varbinary(max), varchar(max), geography und xml. 0 = Die Tabelle enthält keine LOB-Daten. |
filestream_data_space_id | int | Die ID des Datenbereichs für eine FILESTREAM-Dateigruppe oder ein Partitionsschema, das aus FILESTREAM-Dateigruppen besteht. Um den Namen einer FILESTREAM-Dateigruppe auszugeben, führen Sie die Abfrage SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables aus.sys.tables kann zu den folgenden Sichten über filestream_data_space_id = data_space_id verknüpft werden. - sys.filegroups - sys.partition_schemes - sys.indexes - sys.allocation_units - sys.fulltext_catalogs - sys.data_spaces - sys.destination_data_spaces - sys.master_files - sys.database_files - backupfilegroup (Join in filegroup_id) |
max_column_id_used | int | Höchste Spalten-ID, die von dieser Tabelle je verwendet wurde |
lock_on_bulk_load | bit | Die Tabelle wird bei Massenladevorgängen gesperrt. Weitere Informationen finden Sie unter sp_tableoption (Transact-SQL). |
uses_ansi_nulls | bit | Beim Erstellen der Tabelle war die Datenbankoption SET ANSI_NULLS auf ON festgelegt. |
is_replicated | bit | 1 = Die Tabelle wird mithilfe der Momentaufnahme- oder der Transaktionsreplikation veröffentlicht. |
has_replication_filter | bit | 1 = Die Tabelle hat einen Replikationsfilter. |
is_merge_published | bit | 1 = Die Tabelle wird mithilfe der Mergereplikation veröffentlicht. |
is_sync_tran_subscribed | bit | 1 = Die Tabelle wird mithilfe eines Abonnements mit sofortigem Update abonniert. |
has_unchecked_assembly_data | bit | 1 = Die Tabelle enthält persistente Daten, die von einer Assembly abhängen, deren Definition bei der letzten ALTER ASSEMBLY-Anweisung geändert wurde. Der Wert wird nach der nächsten erfolgreichen Ausführung von DBCC CHECKDB oder DBCC CHECKTABLE auf 0 zurückgesetzt. |
text_in_row_limit | int | Die zulässige Höchstzahl der Bytes für Text in Zeilen. 0 = Text in Zeilenoption ist nicht festgelegt. Weitere Informationen finden Sie unter sp_tableoption (Transact-SQL). |
large_value_types_out_of_row | bit | 1 = Umfangreiche Werttypen werden außerhalb der Zeile gespeichert. Weitere Informationen finden Sie unter sp_tableoption (Transact-SQL). |
is_tracked_by_cdc | bit | 1 = Tabelle wird für Change Data Capture aktiviert. Weitere Informationen finden Sie unter sys.sp_cdc_enable_table (Transact-SQL). |
lock_escalation | tinyint | Der Wert der LOCK_ESCALATION-Option für die Tabelle: 0 = TABLE 1 = DISABLE 2 = AUTO |
lock_escalation_desc | nvarchar(60) | Eine Textbeschreibung der lock_escalation-Option für die Tabelle. Mögliche Werte sind TABLE, AUTO und DISABLE. |
is_filetable | bit | Gilt für: SQL Server 2012 (11.x) und höher sowie Azure SQL-Datenbank. 1 = Tabelle ist eine FileTable. Weitere Informationen zu FileTables finden Sie unter FileTables (SQL Server). |
durability | tinyint | Gilt für: SQL Server 2014 (12.x) und höher und Azure SQL-Datenbank. Folgende Werte sind möglich: 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY 0 ist der Standardwert. |
durability_desc | nvarchar(60) | Gilt für: SQL Server 2014 (12.x) und höher und Azure SQL-Datenbank. Folgende Werte sind möglich: SCHEMA_ONLY SCHEMA_AND_DATA Der Wert von SCHEMA_AND_DATA gibt an, dass die Tabelle eine dauerhafte speicherinterne Tabelle ist. SCHEMA_AND_DATA ist der Standardwert für arbeitsspeicheroptimierte Tabellen. Der Wert von SCHEMA_ONLY gibt an, dass die Tabellendaten beim Neustart der Datenbank mit arbeitsspeicheroptimierten Objekten nicht beibehalten werden. |
is_memory_optimized | bit | Gilt für: SQL Server 2014 (12.x) und höher und Azure SQL-Datenbank. Folgende Werte sind möglich: 0 = nicht speicheroptimiert. 1 = ist speicheroptimiert. 0 ist der Standardwert. Arbeitsspeicheroptimierte Tabellen sind In-Memory-Benutzertabellen, deren Schema ähnlich wie bei anderen Benutzertabellen auf dem Datenträger beibehalten wird. Auf arbeitsspeicheroptimierte Tabellen kann von nativ kompilierten gespeicherten Prozeduren zugegriffen werden. |
temporal_type | tinyint | Gilt für: SQL Server 2016 (13.x) und höher und Azure SQL-Datenbank. Der numerische Wert, der den Tabellentyp darstellt: 0 = NON_TEMPORAL_TABLE 1 = HISTORY_TABLE (mit einer temporalen Tabelle verknüpft) 2 = SYSTEM_VERSIONED_TEMPORAL_TABLE |
temporal_type_desc | nvarchar(60) | Gilt für: SQL Server 2016 (13.x) und höher und Azure SQL-Datenbank. Die Textbeschreibung des Tabellentyps: NON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE |
history_table_id | int | Gilt für: SQL Server 2016 (13.x) und höher und Azure SQL-Datenbank. Wenn temporal_type = 2 oder ledger_type = 2, wird die object_id der Tabelle zurückgegeben, die Verlaufsdaten für eine temporale Tabelle verwaltet, andernfalls wird NULL zurückgegeben. |
is_remote_data_archive_enabled | bit | Gilt für: SQL Server 2016 (13.x) und höher sowie Azure SQL-Datenbank Gibt an, ob die Tabelle für Stretch aktiviert ist. 0 = Die Tabelle ist nicht für Stretch aktiviert. 1 = Die Tabelle ist für Stretch aktiviert. Weitere Informationen finden Sie unter Stretch Database. |
is_external | bit | Gilt für: SQL Server 2016 (13.x) und höher, Azure SQL-Datenbank und Azure Synapse Analytics. Gibt an, ob die Tabelle eine externe Tabelle ist. 0 = Die Tabelle ist keine externe Tabelle. 1 = Die Tabelle ist eine externe Tabelle. |
history_retention_period | int | Gilt für: Azure SQL-Datenbank. Der numerische Wert, der die Beibehaltungsdauer für den Verlauf der temporalen Tabelle in Einheiten darstellt, die mit history_retention_period_unit angegeben sind. |
history_retention_period_unit | int | Gilt für: Azure SQL-Datenbank. Der numerische Wert, der den Typ der Einheit für die Beibehaltungsdauer für den Verlauf der temporalen Tabelle darstellt. -1: INFINITE 3: DAY 4: WEEK 5: MONTH 6: YEAR |
history_retention_period_unit_desc | nvarchar(10) | Gilt für: Azure SQL-Datenbank. Die Textbeschreibung des Typs der Einheit für die Beibehaltungsdauer für den Verlauf der temporalen Tabelle. INFINITE DAY WEEK MONTH YEAR |
is_node | bit | Gilt für: SQL Server 2017 (14.x) und Azure SQL-Datenbank. 1 = Dies ist eine Diagrammknotentabelle. 0 = Dies ist keine Diagrammknotentabelle. |
is_edge | bit | Gilt für: Azure SQL-Datenbank. 1 = Dies ist eine Diagrammedgetabelle. 0 = Dies ist keine Diagrammedgetabelle. |
ledger_type | tinyint | Gilt für: Versionen ab SQL Server 2022 (16.x), Azure SQL-Datenbank Der numerische Wert gibt an, ob es sich bei der Tabelle um eine Ledgertabelle handelt. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (verknüpft mit einer aktualisierbaren Ledgertabelle) 2 = UPDATABLE_LEDGER_TABLE 3 = APPEND_ONLY_LEDGER_TABLE Weitere Informationen zum Datenbankledger finden Sie unter Ledger. |
ledger_type_desc | nvarchar(60) | Gilt für: Versionen ab SQL Server 2022 (16.x), Azure SQL-Datenbank Die Textbeschreibung eines Werts in der Spalte „ledger_type“: NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE |
ledger_view_id | int | Gilt für: Versionen ab SQL Server 2022 (16.x), Azure SQL-Datenbank Wenn ledger_type IN (2,3), wird die object_id der Ledgersicht zurückgegeben, andernfalls wird NULL zurückgegeben. |
is_dropped_ledger_table | bit | Gilt für: Versionen ab SQL Server 2022 (16.x), Azure SQL-Datenbank Gibt eine Ledgertabelle an, die gelöscht wurde. |
Berechtigungen
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
Das folgende Beispiel gibt alle Benutzertabellen zurück, die keinen Primärschlüssel aufweisen.
SELECT SCHEMA_NAME(schema_id) AS schema_name
,name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0
ORDER BY schema_name, table_name;
GO
Das folgende Beispiel zeigt, wie verwandte temporale Daten verfügbar gemacht werden können.
Gilt für: SQL Server 2016 (13.x) und höher und Azure SQL-Datenbank.
SELECT T1.object_id, T1.name as TemporalTableName, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
T2.name as HistoryTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,
T1.temporal_type_desc
FROM sys.tables T1
LEFT JOIN sys.tables T2
ON T1.history_table_id = T2.object_id
ORDER BY T1.temporal_type desc
Das folgende Beispiel zeigt, wie Informationen zur Beibehaltung des Verlaufs in temporalen Tabellen verfügbar gemacht werden können.
Gilt für: Azure SQL-Datenbank.
SELECT DB.is_temporal_history_retention_enabled, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
T1.name as TemporalTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema, T2.name as HistoryTableName,
T1.history_retention_period, T1.history_retention_period_unit_desc
FROM sys.tables T1
OUTER APPLY (select is_temporal_history_retention_enabled from sys.databases where name = DB_NAME()) DB
LEFT JOIN sys.tables T2
ON T1.history_table_id = T2.object_id WHERE T1.temporal_type = 2
Weitere Informationen
Katalogsichten für Objekte (Transact-SQL)
Katalogsichten (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
FAQ: Abfragen des SQL Server-Systemkatalogs
In-Memory OLTP (In-Memory Optimization)