Udostępnij za pomocą


sys.tables (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wiersz dla każdej tablicy użytkownika w bazie SQL Server.

Nazwa kolumny Typ danych Description
<inherited columns> Aby uzyskać listę kolumn dziedziczy ten widok, zobacz sys.objects (Transact-SQL).
lob_data_space_id int Niezerowa wartość to identyfikator przestrzeni danych (grupy plików lub schematu partycji), która zawiera duże dane binarne obiektu (LOB) dla tej tabeli. Przykładami typów danych LOB są varbinary(max),varchar(max),geography lub xml.

0 = Tabela nie zawiera danych LOB.
filestream_data_space_id int Identyfikator przestrzeni danych dla grupy plików FILESTREAM lub schematu partycji składającego się z grup plików FILESTREAM.

Aby zgłosić nazwę grupy plików FILESTREAM, wykonaj zapytanie SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.
sys.tablesmożna połączyć z następującymi poglądami 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(dołącz )filegroup_id
max_column_id_used int Maksymalny identyfikator kolumny użyty kiedykolwiek przez tę tabelę.
lock_on_bulk_load bit Stół jest zablokowany na ładunek zbiorczy. Więcej informacji można znaleźć w sp_tableoption (Transact-SQL).
uses_ansi_nulls bit Tabela została utworzona z opcją ONbazy SET ANSI_NULLS danych.
is_replicated bit 1 = Tabela publikowana jest za pomocą replikacji migawkowej lub replikacji transakcyjnej.
has_replication_filter bit 1 = Tabela posiada filtr replikacyjny.
is_merge_published bit 1 = Tabela publikowana jest za pomocą replikacji scalania.
is_sync_tran_subscribed bit 1 = Tabela jest subskrybowana za pomocą subskrypcji z natychmiastową aktualizacją.
has_unchecked_assembly_data bit 1 = Tabela zawiera dane trwałe zależne od zespołu, którego definicja zmieniła się podczas ostatniego ALTER ASSEMBLY. Zostanie zresetowany do 0 po następnym udanym DBCC CHECKDB lub DBCC CHECKTABLE.
text_in_row_limit int Maksymalna liczba bajtów dozwolona na tekst w rzędzie.

0 = Opcja tekstu w wierszu nie jest ustawiona. Więcej informacji można znaleźć w sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Duże typy wartości są przechowywane poza wierszem. Więcej informacji można znaleźć w sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Tabela jest włączona do przechwytywania danych zmian. Więcej informacji można znaleźć w sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Wartość LOCK_ESCALATION opcji dla tabeli:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Tekstowy opis opcji lock_escalation dla stołu. Możliwe wartości to: TABLE, AUTO, i DISABLE.
is_filetable bit 1 = Tabela to Tabela Plików.

Więcej informacji o FileTables można znaleźć w artykule FileTables (SQL Server).

Dotyczy: SQL Server 2012 (11.x) i nowsze wersje oraz Azure SQL Database
is_memory_optimized bit Poniżej przedstawiono możliwe wartości:

0 = nie zoptymalizowana pod względem pamięci.
1 = jest zoptymalizowana pod względem pamięci.

Wartość 0 jest wartością domyślną.

Tablice zoptymalizowane pod pamięć to tabele użytkownika działające w pamięci, których schemat jest przechowywany na dysku podobnie jak w innych tabelach użytkownika. Tabele zoptymalizowane pod pamięć mogą być dostępne z natywnie skompilowanych procedur przechowywanych.

Dotyczy: SQL Server 2014 (12.x) i nowsze wersje oraz Azure SQL Database.
durability tinyint Poniżej przedstawiono możliwe wartości:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Wartość domyślna 0 jest wartością domyślną.

Dotyczy do: SQL Server 2014 (12.x) i nowszych wersji oraz Azure SQL Database
durability_desc nvarchar(60) Poniżej przedstawiono możliwe wartości:

SCHEMA_ONLY
SCHEMA_AND_DATA

Wartość oznacza SCHEMA_AND_DATA , że tabela jest trwałą tabelą w pamięci. SCHEMA_AND_DATA jest domyślną wartością dla tablic zoptymalizowanych pod pamięć. Wartość oznacza SCHEMA_ONLY , że dane tabeli nie są utrwalane po ponownym uruchomieniu bazy danych z obiektami zoptymalizowanymi pod pamięć.

Dotyczy do: SQL Server 2014 (12.x) i nowszych wersji oraz Azure SQL Database
temporal_type tinyint Wartość liczbowa reprezentująca typ tabeli:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (powiązane z tabelą czasową)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Dotyczy do: SQL Server 2016 (13.x) i nowszych wersji oraz Azure SQL Database
temporal_type_desc nvarchar(60) Opis tekstowy typu stołu:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Dotyczy do: SQL Server 2016 (13.x) i nowszych wersji oraz Azure SQL Database
history_table_id int Gdy temporal_type jest lub 2ledger_type jest 2, zwraca object_id tabelę utrzymującą dane historyczne dla tabeli czasowej, w przeciwnym razie zwraca NULL.

Dotyczy do: SQL Server 2016 (13.x) i nowszych wersji oraz Azure SQL Database
is_remote_data_archive_enabled bit Wskazuje, czy tabela jest włączona do rozciągania.

0 = Tabela nie jest obsługiwana przez Stretch.
1 = Tabela jest obsługiwana przez Stretch.

Więcej informacji znajdziesz w Stretch Database.

Dotyczy do: SQL Server 2016 (13.x) i nowszych wersji oraz Azure SQL Database
is_external bit Wskazuje, że tabela jest zewnętrzną tabelą.

0 = Tabela nie jest tabelą zewnętrzną.
1 = Tabela jest tabelą zewnętrzną.

Dotyczy do: SQL Server 2016 (13.x) i późniejszych wersji, Azure SQL Database oraz Azure Synapse Analytics
history_retention_period int Wartość liczbowa reprezentująca czas trwania okresu zachowania historii czasowej w jednostkach określonych z .history_retention_period_unit

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database
history_retention_period_unit int Wartość liczbowa reprezentuje typ jednostki okresu retencji historii czasowej.

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

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database
history_retention_period_unit_desc nvarchar(10) Opis tekstu typu jednostki okresu zachowania historii czasowej.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database
is_node bit 1 = Tabela węzłów grafu.
0 = Nie jest to tabela węzłów grafu.

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database
is_edge bit 1 = Tabela krawędzi grafu.
0 = Nie jest to tabela krawędzi grafu.

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database
data_retention_period int Wartość numeryczna reprezentująca czas trwania okresu przechowywania danych w jednostkach określonych za .data_retention_period_unit

Dotyczy to: Azure SQL Edge tylko
data_retention_period_unit int Wartość numeryczna reprezentuje typ jednostki okresu przechowywania danych.

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

Dotyczy to: Azure SQL Edge tylko
data_retention_period_unit_desc nvarchar(10) Opis tekstowy typu jednostki okresu przechowywania danych.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Dotyczy to: Azure SQL Edge tylko
ledger_type tinyint Wartość numeryczna wskazuje, czy tabela jest tabelą księgową.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (powiązane z aktualizowalną tabelą księgową)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Aby uzyskać więcej informacji na temat rejestru bazy danych, zobacz Rejestr.

Dotyczy: SQL Server 2022 (16.x) i nowsze wersje oraz Azure SQL Database
ledger_type_desc nvarchar(60) Tekstowy opis wartości w kolumnie ledger_type :

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Dotyczy: SQL Server 2022 (16.x) i nowsze wersje oraz Azure SQL Database
ledger_view_id int Gdy ledger_type IN (2, 3) zwraca object_id widok księgi rachunkowej, w przeciwnym razie zwraca NULL.

Dotyczy: SQL Server 2022 (16.x) i nowsze wersje oraz Azure SQL Database
is_dropped_ledger_table bit Wskazuje na tabelę księgową, która została upuszczona.

Dotyczy: SQL Server 2022 (16.x) i nowsze wersje oraz Azure SQL Database

Permissions

Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Przykłady

A. Zwracaj wszystkie tabele użytkownika bez klucza głównego

Poniższy przykład zwraca wszystkie tabele użytkownika, które nie mają klucza głównego.

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

Poniższy przykład pokazuje, jak można ujawnić powiązane dane czasowe.

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje oraz 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. Informacje z listy dotyczące zachowania historii czasowej

Poniższy przykład pokazuje, jak można ujawnić informacje o zachowaniu historii czasowej.

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz 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;