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 ON erstellt. |
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
B. Zeitliche Datenbezogene Tabellen auflisten
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;