sys.tables (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar en rad för varje användartabell i en SQL Server-databas.

Kolumnnamn Datatyp Description
<inherited columns> En lista över kolumner som den här vyn ärver finns i sys.objects (Transact-SQL).
lob_data_space_id int Ett icke-nollvärde är ID:t för datautrymmet (filgrupp eller partitionsschema) som innehåller de stora objektbinärdata (LOB) för denna tabell. Exempel på LOB-datatyper inkluderar varbinary(max),varchar(max),geography eller xml.

0 = Tabellen har inga LOB-data.
filestream_data_space_id int Datautrymmes-ID för en FILESTREAM-filgrupp eller ett partitionsschema som består av FILESTREAM-filgrupper.

För att rapportera namnet på en FILESTREAM-filgrupp, kör frågan SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.
sys.tables kan kopplas till följande vyer på 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 (gå med filegroup_id)
max_column_id_used int Maximalt kolumn-ID som någonsin använts av denna tabell.
lock_on_bulk_load bit Bordet är låst vid bulklast. För mer information, se sp_tableoption (Transact-SQL).
uses_ansi_nulls bit Tabell skapades med SET ANSI_NULLS databasalternativet ON.
is_replicated bit 1 = Tabell publiceras med hjälp av snapshot-replikering eller transaktionell replikation.
has_replication_filter bit 1 = Tabellen har ett replikationsfilter.
is_merge_published bit 1 = Tabell publiceras med hjälp av sammanslagningsreplikering.
is_sync_tran_subscribed bit 1 = Tabellen prenumereras med en omedelbar uppdateringsprenumeration.
has_unchecked_assembly_data bit 1 = Tabell innehåller bevarad data som beror på en sammansättning vars definition ändrades under den senaste ALTER ASSEMBLY. Kommer att återställas till 0 efter nästa lyckade DBCC CHECKDB eller DBCC CHECKTABLE.
text_in_row_limit int De maximala bytes som tillåts för text i rad.

0 = Alternativet Text i rad är inte inställt. För mer information, se sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Stora värdetyper lagras utanför raden. För mer information, se sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Tabell är aktiverad för insamling av ändringsdata. För mer information, se sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Ett värde på optionen LOCK_ESCALATION för tabellen:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) En textbeskrivning av lock_escalation-alternativet för tabellen. Möjliga värden är: TABLE, AUTOoch DISABLE.
is_filetable bit 1 = Tabell är en FilTabell.

För mer information om FileTables, se FileTables (SQL Server).

Gäller för: SQL Server 2012 (11.x) och senare versioner och Azure SQL Database
is_memory_optimized bit Följande är möjliga värden:

0 = inte minnesoptimerad.
1 = är minnesoptimerad.

Ett värde på 0 är standardvärdet.

Minnesoptimerade tabeller är användartabeller i minnet, vars schema sparas på disken likt andra användartabeller. Minnesoptimerade tabeller kan nås från nativt kompilerade lagrade procedurer.

Gäller för: SQL Server 2014 (12.x) och senare versioner och Azure SQL Database.
durability tinyint Följande är möjliga värden:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Ett värde på 0 är standardvärdet.

Gäller för: SQL Server 2014 (12.x) och senare versioner, samt Azure SQL Database
durability_desc nvarchar(60) Följande är möjliga värden:

SCHEMA_ONLY
SCHEMA_AND_DATA

Ett värde på SCHEMA_AND_DATA indikerar att tabellen är en hållbar, minnesbaserad tabell. SCHEMA_AND_DATA är standardvärdet för minnesoptimerade tabeller. Ett värde på SCHEMA_ONLY indikerar att tabelldata inte sparas vid omstart av databasen med minnesoptimerade objekt.

Gäller för: SQL Server 2014 (12.x) och senare versioner, samt Azure SQL Database
temporal_type tinyint Det numeriska värdet som representerar tabelltypen:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (associerad med en temporal tabell)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Gäller för: SQL Server 2016 (13.x) och senare versioner, samt Azure SQL Database
temporal_type_desc nvarchar(60) Textbeskrivningen av typen av tabell:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Gäller för: SQL Server 2016 (13.x) och senare versioner, samt Azure SQL Database
history_table_id int När är eller är , returnerar object_id tabellen som upprätthåller historiska data för en tidstabell, annars returnerar NULLden .2ledger_type2temporal_type

Gäller för: SQL Server 2016 (13.x) och senare versioner, samt Azure SQL Database
is_remote_data_archive_enabled bit Indikerar om tabellen är Stretch-aktiverad.

0 = Tabellen är inte Stretch-aktiverad.
1 = Tabellen är Stretch-aktiverad.

För mer information, se Stretch Database.

Gäller för: SQL Server 2016 (13.x) och senare versioner, samt Azure SQL Database
is_external bit Indikerar att tabellen är en extern tabell.

0 = Tabellen är inte en extern tabell.
1 = Tabellen är en extern tabell.

Gäller för: SQL Server 2016 (13.x) och senare versioner, Azure SQL Database och Azure Synapse Analytics
history_retention_period int Det numeriska värdet som representerar varaktigheten för den tidsmässiga historikens bevarandeperiod i enheter specificerade med history_retention_period_unit.

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
history_retention_period_unit int Det numeriska värdet som representerar typen av tidshistorikens lagringstidsenhet.

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

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
history_retention_period_unit_desc nvarchar(10) Textbeskrivningen av typen av tidshistorikens lagringsperiod.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
is_node bit 1 = Tabell för grafnoder.
0 = Inte en grafnodtabell.

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
is_edge bit 1 = Tabell för grafkanter.
0 = Inte en tabell med grafkanter.

gäller för: SQL Server 2017 (14.x) och senare versioner och Azure SQL Database
data_retention_period int Det numeriska värdet som representerar varaktigheten av datalagringsperioden i enheter specificerade med data_retention_period_unit.

Gäller endast Azure SQL Edge
data_retention_period_unit int Det numeriska värdet som representerar typen av datalagringstidsenhet.

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

Gäller endast Azure SQL Edge
data_retention_period_unit_desc nvarchar(10) Textbeskrivningen av typen av datalagringsperiod är enheten.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Gäller endast Azure SQL Edge
ledger_type tinyint Det numeriska värdet anger om tabellen är en huvudbokstabell.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (associerad med en uppdaterabar huvudboktabell)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Mer information om databasregister finns i Ledger.

Gäller för: SQL Server 2022 (16.x) och senare versioner och Azure SQL Database
ledger_type_desc nvarchar(60) Textbeskrivningen av ett värde i kolumnen ledger_type :

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Gäller för: SQL Server 2022 (16.x) och senare versioner och Azure SQL Database
ledger_view_id int När ledger_type IN (2, 3) ledgervyn återvänder object_id , återkommer NULLannars .

Gäller för: SQL Server 2022 (16.x) och senare versioner och Azure SQL Database
is_dropped_ledger_table bit Indikerar en huvudbokstabell som tappades.

Gäller för: SQL Server 2022 (16.x) och senare versioner och Azure SQL Database

Permissions

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Examples

A. Returnera alla användartabeller utan primärnyckel

Följande exempel returnerar alla användartabeller som inte har en primärnyckel.

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

Följande exempel visar hur relaterade tidsdata kan exponeras.

Gäller för: SQL Server 2016 (13.x) och senare versioner och 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. Listinformation om tidshistorisk bevarande

Följande exempel visar hur information om tidshistorisk lagring kan exponeras.

Gäller för: SQL Server 2017 (14.x) och senare versioner och 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;