Delen via


sys.tables (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft een rij terug voor elke gebruikerstabel in een SQL Server-database.

Kolomnaam Gegevenstype Description
<inherited columns> Zie sys.objects (Transact-SQL)voor een lijst met kolommen die door deze weergave worden overgenomen.
lob_data_space_id int Een niet-nul waarde is de ID van de dataruimte (bestandsgroep of partitieschema) die de grote objectbinaire (LOB) gegevens voor deze tabel bevat. Voorbeelden van LOB-datatypes zijn varbinary(max),varchar(max),geography of xml.

0 = De tabel bevat geen LOB-gegevens.
filestream_data_space_id int De dataruimte-ID voor een FILESTREAM-bestandsgroep of een partitieschema dat bestaat uit FILESTREAM-bestandsgroepen.

Om de naam van een FILESTREAM-bestandsgroep te rapporteren, voer je de query SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tablesuit .
sys.tables kan worden toegevoegd aan de volgende standpunten op 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 (doe mee filegroup_id)
max_column_id_used int Maximale kolom-ID ooit gebruikt door deze tabel.
lock_on_bulk_load bit De tabel is vergrendeld bij bulkbelasting. Voor meer informatie, zie sp_tableoption (Transact-SQL).
uses_ansi_nulls bit Tabel is gemaakt met de SET ANSI_NULLS databaseoptie ON.
is_replicated bit 1 = Tabel wordt gepubliceerd met behulp van snapshot-replicatie of transactionele replicatie.
has_replication_filter bit 1 = Tabel heeft een replicatiefilter.
is_merge_published bit 1 = Tabel wordt gepubliceerd met behulp van merge-replicatie.
is_sync_tran_subscribed bit 1 = Tabel wordt geabonneerd met een direct update-abonnement.
has_unchecked_assembly_data bit 1 = Tabel bevat behouden gegevens die afhangen van een assembly waarvan de definitie veranderde tijdens de laatste ALTER ASSEMBLY. Wordt na de volgende succesvolle DBCC CHECKDB of DBCC CHECKTABLE.
text_in_row_limit int De maximale bytes toegestaan voor tekst in rij.

0 = De optie tekst in rij is niet ingesteld. Voor meer informatie, zie sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Grote waardetypen worden buiten de rij opgeslagen. Voor meer informatie, zie sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Tabel is ingeschakeld voor het vastleggen van wijzigingsgegevens. Voor meer informatie, zie sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Een waarde van de LOCK_ESCALATION optie voor de tabel:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Een tekstbeschrijving van de lock_escalation optie voor de tabel. Mogelijke waarden zijn: TABLE, AUTOen DISABLE.
is_filetable bit 1 = Tabel is een FileTable.

Voor meer informatie over FileTables, zie FileTables (SQL Server).

Van toepassing op: SQL Server 2012 (11.x) en latere versies en Azure SQL Database
is_memory_optimized bit De volgende zijn de mogelijke waarden:

0 = niet geheugengeoptimaliseerd.
1 = is geheugengeoptimaliseerd.

Een waarde van 0 is de standaardwaarde.

Geheugengeoptimaliseerde tabellen zijn in-memory gebruikerstabellen, waarvan het schema op de schijf wordt behouden, vergelijkbaar met andere gebruikerstabellen. Geheugengeoptimaliseerde tabellen kunnen worden benaderd vanuit native gecompileerde opgeslagen procedures.

Van toepassing op: SQL Server 2014 (12.x) en latere versies en Azure SQL Database.
durability tinyint De volgende zijn mogelijke waarden:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Een waarde van 0 is de standaardwaarde.

Van toepassing op: SQL Server 2014 (12.x) en latere versies, en Azure SQL Database
durability_desc nvarchar(60) De volgende zijn de mogelijke waarden:

SCHEMA_ONLY
SCHEMA_AND_DATA

Een waarde van SCHEMA_AND_DATA geeft aan dat de tabel een duurzame, geheugen-tabel is. SCHEMA_AND_DATA is de standaardwaarde voor geheugengeoptimaliseerde tabellen. Een waarde van SCHEMA_ONLY geeft aan dat de tabelgegevens niet worden behouden bij het herstarten van de database met geheugengeoptimaliseerde objecten.

Van toepassing op: SQL Server 2014 (12.x) en latere versies, en Azure SQL Database
temporal_type tinyint De numerieke waarde die het type tabel voorstelt:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (geassocieerd met een temporele tabel)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Van toepassing op: SQL Server 2016 (13.x) en latere versies, en Azure SQL Database
temporal_type_desc nvarchar(60) De tekstbeschrijving van het type tabel:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Van toepassing op: SQL Server 2016 (13.x) en latere versies, en Azure SQL Database
history_table_id int Wanneer temporal_type is 2 of ledger_type is2, geeft object_id de tabel die historische gegevens voor een temporele tabel bijhoudt, en geeft anders .NULL

Van toepassing op: SQL Server 2016 (13.x) en latere versies, en Azure SQL Database
is_remote_data_archive_enabled bit Geeft aan of de tabel Stretch-enabled is.

0 = De tabel is niet Stretch-enabled.
1 = De tabel is Stretch-enabled.

Voor meer informatie, zie Stretch Database.

Van toepassing op: SQL Server 2016 (13.x) en latere versies, en Azure SQL Database
is_external bit Geeft aan dat de tabel een externe tabel is.

0 = De tabel is geen externe tabel.
1 = De tabel is een externe tabel.

Van toepassing op: SQL Server 2016 (13.x) en latere versies, Azure SQL Database en Azure Synapse Analytics
history_retention_period int De numerieke waarde die de duur van de tijdsgeschiedenis-retentieperiode in eenheden vertegenwoordigt, gespecificeerd met history_retention_period_unit.

van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database
history_retention_period_unit int De numerieke waarde die het type temporele geschiedenis-retentieperiode eenheid vertegenwoordigt.

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

van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database
history_retention_period_unit_desc nvarchar(10) De tekstbeschrijving van het type temporele geschiedenis bewaarperiode eenheid.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database
is_node bit 1 = Tabel met grafknoop.
0 = Geen grafiekknooptabel.

van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database
is_edge bit 1 = Tabel van de rand van de grafiek.
0 = Geen tabel met de rand van de grafen.

van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database
data_retention_period int De numerieke waarde die de duur van de gegevensbewaarperiode in eenheden aangeeft, gespecificeerd met data_retention_period_unit.

Alleen van toepassing op: Azure SQL Edge
data_retention_period_unit int De numerieke waarde die het type gegevensbehoudsperiode vertegenwoordigt.

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

Alleen van toepassing op: Azure SQL Edge
data_retention_period_unit_desc nvarchar(10) De tekstbeschrijving van het type gegevensbewaarperiode-eenheid.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Alleen van toepassing op: Azure SQL Edge
ledger_type tinyint De numerieke waarde geeft aan of de tabel een grootboektabel is.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (gekoppeld aan een updateerbare grootboektabel)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Zie Grootboek voor meer informatie over database-grootboek.

Van toepassing op: SQL Server 2022 (16.x) en latere versies, en Azure SQL Database
ledger_type_desc nvarchar(60) De tekstbeschrijving van een waarde in de ledger_type kolom:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Van toepassing op: SQL Server 2022 (16.x) en latere versies, en Azure SQL Database
ledger_view_id int Wanneer ledger_type IN (2, 3) het grootboekbeeld terugkeertobject_id, geeft anders .NULL

Van toepassing op: SQL Server 2022 (16.x) en latere versies, en Azure SQL Database
is_dropped_ledger_table bit Geeft een grootboektabel aan die is weggelaten.

Van toepassing op: SQL Server 2022 (16.x) en latere versies, en Azure SQL Database

Permissions

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden

Eén. Geef alle gebruikerstabellen zonder primaire sleutel terug

Het volgende voorbeeld geeft alle gebruikerstabellen terug die geen primaire sleutel hebben.

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

Het volgende voorbeeld laat zien hoe gerelateerde temporele gegevens kunnen worden blootgesteld.

Van toepassing op: SQL Server 2016 (13.x) en latere versies en Azure SQL Database.

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. Lijstinformatie over het behoud van de tijdsgeschiedenis

Het volgende voorbeeld laat zien hoe informatie over het behoud van de tijdsgeschiedenis kan worden blootgelegd.

Van toepassing op: SQL Server 2017 (14.x) en latere versies en Azure SQL Database.

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;