sys.tables (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaAzure SQL-Datenbank JaVerwaltete Azure SQL-Instanz JaAzure Synapse Analytics JaParallel Data Warehouse

Gibt eine Zeile für jede Benutzertabelle in SQL Server zurück.

Spaltenname Datentyp BESCHREIBUNG
<inherited columns> Eine Liste der Spalten, die von dieser Sicht geerbt werden, 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 oder 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 zu melden, 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 on 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 = Die Option Text in Zeile 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 und 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 speicheroptimierte Tabellen. Der Wert von SCHEMA_ONLY gibt an, dass die Tabellendaten nicht nach dem Neustart der Datenbank mit speicheroptimierten Objekten 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.

Der Wert 0 ist der Standardwert.

Speicheroptimierte Tabellen sind In-Memory-Benutzertabellen, deren Schema ähnlich wie andere Benutzertabellen auf dem Datenträger beibehalten wird. Auf speicheroptimierte Tabellen kann über systemeigene kompilierte gespeicherte 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 Typ der Tabelle darstellt:

0 = NON_TEMPORAL_TABLE

1 = HISTORY_TABLE (zugeordnet zu einer temporalen Tabelle)

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 object_id der Tabelle zurückgibt, 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 und Azure SQL-Datenbank

Gibt an, ob die Tabelle Stretch-fähig ist.

0 = Die Tabelle ist nicht Stretch-fähig.

1 = Die Tabelle ist Stretch-fähig.

Weitere Informationen finden Sie unter Stretch Database.
is_external bit Gilt für: SQL Server 2016 (13.x) und höher, und Azure SQL-Datenbank Azure Synapse Analytics .

Gibt an, dass table 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 Dauer der Beibehaltungsdauer des temporalen Verlaufs in Einheiten darstellt, die mit dem history_retention_period_unit.
history_retention_period_unit int Gilt für: Azure SQL-Datenbank.

Der numerische Wert, der den Typ der Beibehaltungsdauereinheit für den temporalen Verlauf darstellt.

-1: INFINITE

3: DAY

4: WOCHE

5: MONTH

6: YEAR
history_retention_period_unit_desc nvarchar(10) Gilt für: Azure SQL-Datenbank.

Die Textbeschreibung des Typs der Beibehaltungsdauereinheit für den temporalen Verlauf.

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 Graphknotentabelle.
is_edge bit Gilt für: Azure SQL-Datenbank.

1 = Dies ist eine Graph-Edgetabelle.

0 = Dies ist keine Graph-Edgetabelle.
ledger_type tinyint Gilt für: Azure SQL-Datenbank.

Der numerische Wert gibt an, ob die Tabelle eine Ledgertabelle ist.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (zugeordnet mit einer updatable Ledger-Tabelle)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Weitere Informationen zum Datenbankbuch finden Sie unter Azure SQL-Datenbank Ledger.
ledger_type_desc nvarchar(60) Gilt für: Azure SQL-Datenbank.

Die Textbeschreibung eines Werts in der ledger_type Spalte:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE
ledger_view_id int Gilt für: Azure SQL-Datenbank.

Wenn ledger_type IN (2,3) object_id der Ledgeransicht zurückgibt, andernfalls NULL.
is_dropped_ledger_table bit Gilt für: 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

Im folgenden Beispiel werden alle Benutzertabellen zurückgegeben, 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 verknüpfte 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 temporalen Verlaufs 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)
Abfragen des SQL Server Systemkatalogs – häufig gestellte Fragen
In-Memory-OLTP (Arbeitsspeicheroptimierung)