sys.tables (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric

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

Spaltenname Datentyp Beschreibung
<inherited columns> 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 Datenspeicher-ID 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 mit den folgenden Ansichten verknüpft werden unter filestream_data_space_id = data_space_id.
- 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 (Beitreten zu 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 Tabelle wurde mit der SET ANSI_NULLS Datenbankoption ONerstellt.
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 = Tabelle enthält gespeicherte Daten, die von einer Assembly abhängen, deren Definition während der letzten ALTER ASSEMBLYÄnderung geändert wurde. Wird nach erfolgreicher DBCC CHECKDB Ausführung auf 0 zurückgesetzt.DBCC CHECKTABLE
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 Ein 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 1 = Tabelle ist eine FileTable.

Weitere Informationen zu FileTables finden Sie unter FileTables (SQL Server).

Gilt für: SQL Server 2012 (11.x) und höhere Versionen sowie Azure SQL-Datenbank
is_memory_optimized bit 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.

Gilt für: SQL Server 2014 (12.x) und höhere Versionen sowie Azure SQL-Datenbank.
durability tinyint Folgende Werte sind möglich:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Ein Wert von 0 ist der Standardwert.

Gilt für: SQL Server 2014 (12.x) und höhere Versionen und Azure SQL-Datenbank
durability_desc nvarchar(60) Folgende Werte sind möglich:

SCHEMA_ONLY
SCHEMA_AND_DATA

Ein Wert, der SCHEMA_AND_DATA angibt, dass die Tabelle eine dauerhafte, speicherinterne Tabelle ist. SCHEMA_AND_DATA ist der Standardwert für speicheroptimierte Tabellen. Der Wert gibt SCHEMA_ONLY an, dass die Tabellendaten beim Neustart der Datenbank mit speicheroptimierten Objekten nicht beibehalten werden.

Gilt für: SQL Server 2014 (12.x) und höhere Versionen und Azure SQL-Datenbank
temporal_type tinyint Der numerische Wert, der den Tabellentyp darstellt:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (zugeordnet mit einer zeitlichen Tabelle)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Gilt für: SQL Server 2016 (13.x) und höhere Versionen und Azure SQL-Datenbank
temporal_type_desc nvarchar(60) Die Textbeschreibung des Tabellentyps:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Gilt für: SQL Server 2016 (13.x) und höhere Versionen und Azure SQL-Datenbank
history_table_id int Ist temporal_type 2 oder ledger_type ist 2, object_id gibt die Tabelle zurück, die historische Daten für eine zeitliche Tabelle verwaltet, andernfalls wird zurückgegeben NULL.

Gilt für: SQL Server 2016 (13.x) und höhere Versionen und Azure SQL-Datenbank
is_remote_data_archive_enabled bit 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.

Gilt für: SQL Server 2016 (13.x) und höhere Versionen und Azure SQL-Datenbank
is_external bit Gibt an, ob die Tabelle eine externe Tabelle ist.

0 = Die Tabelle ist keine externe Tabelle.
1 = Die Tabelle ist eine externe Tabelle.

Gilt für: SQL Server 2016 (13.x) und höhere Versionen, Azure SQL-Datenbank und Azure Synapse Analytics
history_retention_period int Der numerische Wert, der die Dauer des Aufbewahrungszeitraums für den zeitlichen Verlauf in Einheiten darstellt, die mit history_retention_period_unit.

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie Azure SQL-Datenbank
history_retention_period_unit int Der numerische Wert, der den Typ der Einheit für die Beibehaltungsdauer für den Verlauf der temporalen Tabelle darstellt.

-1: INFINITE
0: SECOND
1: MINUTE
2: HOUR
3: DAY
4: WEEK
5: MONTH
6: YEAR

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie Azure SQL-Datenbank
history_retention_period_unit_desc nvarchar(10) Die Textbeschreibung des Typs der Einheit für die Beibehaltungsdauer für den Verlauf der temporalen Tabelle.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie Azure SQL-Datenbank
is_node bit 1 = Graph-Knotentabelle.
0 = Keine Diagrammknotentabelle.

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie Azure SQL-Datenbank
is_edge bit 1 = Graph-Randtabelle.
0 = Keine Graph-Randtabelle.

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie Azure SQL-Datenbank
data_retention_period int Der numerische Wert, der die Dauer des Datenaufbewahrungszeitraums in Einheiten darstellt, die mit data_retention_period_unit.

Anwendungsbereich:Nur Azure SQL Edge
data_retention_period_unit int Der numerische Wert, der den Typ der Datenaufbewahrungszeitraumseinheit darstellt.

-1: INFINITE
0: SECOND
1: MINUTE
2: HOUR
3: DAY
4: WEEK
5: MONTH
6: YEAR

Anwendungsbereich:Nur Azure SQL Edge
data_retention_period_unit_desc nvarchar(10) Die Textbeschreibung des Typs des Datenaufbewahrungszeitraums.The text description of type of data retention period unit.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Anwendungsbereich:Nur Azure SQL Edge
ledger_type tinyint Der numerische Wert gibt an, ob es sich bei der Tabelle um eine Ledgertabelle handelt.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (zugeordnet mit einer aktualisierbaren Sachtabelle)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Weitere Informationen zum Datenbankledger finden Sie unter Ledger.

Gilt für: SQL Server 2022 (16.x) und höhere Versionen und Azure SQL-Datenbank
ledger_type_desc nvarchar(60) Die Textbeschreibung eines Werts in der ledger_type Spalte:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Gilt für: SQL Server 2022 (16.x) und höhere Versionen und Azure SQL-Datenbank
ledger_view_id int Wenn ledger_type IN (2, 3) die Hauptbuchansicht zurückgegeben object_id wird, andernfalls wird zurückgegeben NULL.

Gilt für: SQL Server 2022 (16.x) und höhere Versionen und Azure SQL-Datenbank
is_dropped_ledger_table bit Gibt eine Ledger-Tabelle an, die gelöscht wurde.

Gilt für: SQL Server 2022 (16.x) und höhere Versionen und Azure SQL-Datenbank

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

A. Zurückgeben aller Benutzertabellen ohne Primärschlüssel

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 spätere Versionen sowie 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;

C. Auflisten von Informationen zur Aufbewahrung des zeitlichen Verlaufs

Das folgende Beispiel zeigt, wie Informationen zur Beibehaltung des Verlaufs in temporalen Tabellen verfügbar gemacht werden können.

Gilt für: SQL Server 2017 (14.x) und höhere Versionen sowie 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;