Sdílet prostřednictvím


sys.tables (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací řádek pro každou uživatelskou tabulku v databázi SQL Serveru.

Název sloupce Datový typ Description
<inherited columns> Seznam sloupců, které toto zobrazení dědí, naleznete v tématu sys.objects (Transact-SQL).
lob_data_space_id int Nenulová hodnota je ID datového prostoru (souborové skupiny nebo schématu rozdělení), které uchovává data velkého binárního objektu (LOB) pro tuto tabulku. Příklady typů dat LOB zahrnují varbinary(max),varchar(max),geografii nebo xml.

0 = Tabulka neobsahuje data o LOB.
filestream_data_space_id int ID datového prostoru pro souborovou skupinu FILESTREAM nebo schéma oddílů, které se skládá ze skupin souborů FILESTREAM.

Pro nahlášení názvu souborové skupiny FILESTREAM spusťte dotaz SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.
sys.tables lze připojit k následujícím názorům na 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 (přidejte se filegroup_id)
max_column_id_used int Maximální ID sloupce, které kdy tato tabulka použila.
lock_on_bulk_load bit Stůl je uzamčený na hromadné naložení. Pro více informací viz sp_tableoption (Transact-SQL).
uses_ansi_nulls bit Tabulka byla vytvořena s možností ONdatabáze SET ANSI_NULLS .
is_replicated bit 1 = Tabulka je publikována pomocí replikace snapshotů nebo transakční replikace.
has_replication_filter bit 1 = Tabulka má replikační filtr.
is_merge_published bit 1 = Tabulka je publikována pomocí replikace při slučování.
is_sync_tran_subscribed bit 1 = Tabulka je odebírána pomocí okamžitého aktualizačního odběru.
has_unchecked_assembly_data bit 1 = Tabulka obsahuje přetrvávaná data, která závisí na sestavě, jejíž definice se změnila během posledních ALTER ASSEMBLY. Po dalším úspěšném DBCC CHECKDBDBCC CHECKTABLEnebo .
text_in_row_limit int Maximální počet bajtů povolen pro text v řádku.

0 = Není nastavena možnost textu v řádku. Pro více informací viz sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Velké hodnoty jsou ukládány mimo řádek. Pro více informací viz sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Tabulka je povolena pro zachycení dat o změnách. Pro více informací viz sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Hodnota LOCK_ESCALATION opce pro tabulku:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Textový popis možnosti lock_escalation pro tabulku. Možné hodnoty jsou: TABLE, AUTOa DISABLE.
is_filetable bit 1 = Tabulka je FileTable.

Pro více informací o FileTables viz FileTables (SQL Server).

Platí pro: SQL Server 2012 (11.x) a novější verze a Azure SQL Database
is_memory_optimized bit Následující jsou možné hodnoty:

0 = není optimalizováno pro paměť.
1 = je optimalizováno pro paměť.

Výchozí hodnota je 0.

Tabulky optimalizované pro paměť jsou uživatelské tabulky v paměti, jejichž schéma je uloženo na disku podobně jako u jiných uživatelských tabulek. Tabulky optimalizované pro paměť lze přistupovat z nativně zkompilovaných uložených procedur.

Platí pro: SQL Server 2014 (12.x) a novější verze a Azure SQL Database.
durability tinyint Následující jsou možné hodnoty:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Hodnota je 0 výchozí hodnota.

Platí na: SQL Server 2014 (12.x) a pozdější verze, a Azure SQL Database
durability_desc nvarchar(60) Následující jsou možné hodnoty:

SCHEMA_ONLY
SCHEMA_AND_DATA

Hodnota označuje SCHEMA_AND_DATA , že tabulka je trvalá tabulka v paměti. SCHEMA_AND_DATA je výchozí hodnota pro tabulky optimalizované pro paměť. Hodnota označuje SCHEMA_ONLY , že tabulková data nejsou při restartu databáze s objekty optimalizovanými pro paměť uchovávána.

Platí na: SQL Server 2014 (12.x) a pozdější verze, a Azure SQL Database
temporal_type tinyint Číselná hodnota představující typ tabulky:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (spojeno s časovou tabulkou)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Platí na: SQL Server 2016 (13.x) a novější verze a Azure SQL Database
temporal_type_desc nvarchar(60) Textový popis typu tabulky:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Platí na: SQL Server 2016 (13.x) a novější verze a Azure SQL Database
history_table_id int Když temporal_type je nebo 2ledger_type je 2, vrací object_id tabulku, která uchovává historická data pro časovou tabulku, jinak vrací NULL.

Platí na: SQL Server 2016 (13.x) a novější verze a Azure SQL Database
is_remote_data_archive_enabled bit Označuje, zda je tabulka povolena pro Stretch.

0 = Tabulka není povolena pro Stretch.
1 = Tabulka je podporována pro Stretch.

Pro více informací viz Stretch Database.

Platí na: SQL Server 2016 (13.x) a novější verze a Azure SQL Database
is_external bit Označuje tabulku, která je externí tabulkou.

0 = Tabulka není externí tabulka.
1 = Tabulka je externí tabulka.

Platí na: SQL Server 2016 (13.x) a pozdější verze, Azure SQL Database a Azure Synapse Analytics
history_retention_period int Číselná hodnota představující dobu trvání období uchovávání časové historie v jednotkách specifikovaných pomocí .history_retention_period_unit

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
history_retention_period_unit int Číselná hodnota představuje typ jednotky doby uchovávání časové historie.

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

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
history_retention_period_unit_desc nvarchar(10) Textový popis typu jednotky pro uchovávání časové historie.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
is_node bit 1 = Tabulka uzlů grafu.
0 = Není to tabulka uzlů grafu.

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
is_edge bit 1 = Tabulka hran grafu.
0 = Není to tabulka hran grafu.

platí pro: SQL Server 2017 (14.x) a novější verze a Azure SQL Database
data_retention_period int Číselná hodnota představující dobu uchovávání dat v jednotkách specifikovaných s .data_retention_period_unit

Platí na: Azure SQL Edge pouze
data_retention_period_unit int Číselná hodnota představuje typ jednotky doby uchovávání dat.

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

Platí na: Azure SQL Edge pouze
data_retention_period_unit_desc nvarchar(10) Textový popis typu jednotky doby uchovávání dat.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Platí na: Azure SQL Edge pouze
ledger_type tinyint Číselná hodnota označuje, zda je tabulka účetní knihy.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (přiřazeno k aktualizovatelné účetní tabulce)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Další informace o registru databáze naleznete v tématu Ledger.

Platí pro: SQL Server 2022 (16.x) a novější verze a Azure SQL Database
ledger_type_desc nvarchar(60) Textový popis hodnoty ve sloupci ledger_type :

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Platí pro: SQL Server 2022 (16.x) a novější verze a Azure SQL Database
ledger_view_id int Když ledger_type IN (2, 3) se object_id vrátí pohled z účetní knihy, jinak vrátí NULL.

Platí pro: SQL Server 2022 (16.x) a novější verze a Azure SQL Database
is_dropped_ledger_table bit Ukazuje tabulku účetní knihy, která byla upuštěna.

Platí pro: SQL Server 2022 (16.x) a novější verze a Azure SQL Database

Povolení

Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Examples

A. Vraťte všechny uživatelské tabulky bez primárního klíče

Následující příklad vrací všechny uživatelské tabulky, které nemají primární klíč.

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

Následující příklad ukazuje, jak lze zpřístupnit související časová data.

Platí pro: SQL Server 2016 (13.x) a novější verze a 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. Informace o uchovávání časové historie v seznamu

Následující příklad ukazuje, jak lze zpřístupnit informace o uchovávání časové historie.

Platí pro: SQL Server 2017 (14.x) a novější verze a 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;