sys.tables (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает строку для каждой пользовательской таблицы в базе данных SQL Server.
Имя столбца | Тип данных | Description |
---|---|---|
<inherited columns> |
Список столбцов, наследуемых этим представлением, см. в разделе sys.objects (Transact-SQL). | |
lob_data_space_id |
int | Ненулевое значение — это идентификатор пространства данных (файловой группы или схемы секционирования), хранящего данные больших двоичных объектов (LOB) для этой таблицы. Примеры типов данных LOB включают varbinary(max), varchar(max), geography или xml. 0 = в таблице отсутствуют данные LOB. |
filestream_data_space_id |
int | Идентификатор пространства данных для файловой группы FILESTREAM или схемы секционирования, состоящей из файловых групп FILESTREAM. Чтобы получить имя файловой группы FILESTREAM, необходимо выполнить запрос SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables .sys.tables можно присоединиться к следующим представлениям 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 (присоединение filegroup_id ) |
max_column_id_used |
int | Максимальный идентификатор столбца, когда-либо использованный в таблице. |
lock_on_bulk_load |
bit | Таблица заблокирована при массовой загрузке. Дополнительные сведения см. в статье sp_tableoption (Transact-SQL). |
uses_ansi_nulls |
bit | Таблица была создана с параметром SET ANSI_NULLS ON базы данных. |
is_replicated |
bit | 1 = таблица опубликована путем репликации моментальных снимков или транзакций. |
has_replication_filter |
bit | 1 = для таблицы имеется фильтр репликации. |
is_merge_published |
bit | 1 = таблица опубликована путем репликации слиянием. |
is_sync_tran_subscribed |
bit | 1 = таблица используется в немедленно обновляемой подписке. |
has_unchecked_assembly_data |
bit | 1 = таблица содержит сохраненные данные, которые зависят от сборки, определение которой изменилось в течение последнего ALTER ASSEMBLY . Будет сброшено до 0 после следующего успешного или DBCC CHECKTABLE успешного DBCC CHECKDB выполнения. |
text_in_row_limit |
int | Максимальное число байтов, разрешенное для текста в строке. 0 = параметр текста в строке не установлен. Дополнительные сведения см. в статье sp_tableoption (Transact-SQL). |
large_value_types_out_of_row |
bit | 1 = типы больших значений хранятся вне строк. Дополнительные сведения см. в статье sp_tableoption (Transact-SQL). |
is_tracked_by_cdc |
bit | 1 = в таблице включена система отслеживания измененных данных. Дополнительные сведения см. в разделе sys.sp_cdc_enable_table (Transact-SQL). |
lock_escalation |
tinyint | Значение LOCK_ESCALATION параметра для таблицы:0 = TABLE 1 = DISABLE 2 = AUTO |
lock_escalation_desc |
nvarchar(60) | Текстовое описание параметра lock_escalation для таблицы. Возможные значения: TABLE , AUTO и DISABLE . |
is_filetable |
bit | 1 = таблица имеет тип FileTable. Дополнительные сведения о таблицах FileTable см. в разделе Таблицы FileTable (SQL Server). Область применения: SQL Server 2012 (11.x) и более поздних версий и База данных SQL Azure |
is_memory_optimized |
bit | Допустимы следующие значения: 0 = не оптимизировано для памяти. 1 = оптимизировано для памяти Значение по умолчанию — 0. Оптимизированные для памяти таблицы — это хранящиеся в памяти пользовательские таблицы, схемы которых сохраняются на диске аналогично другим пользовательским таблицам. Доступ к оптимизированным для памяти таблицам можно осуществлять из скомпилированных в собственном коде хранимых процедур. Область применения: SQL Server 2014 (12.x) и более поздних версий и База данных SQL Azure. |
durability |
tinyint | Возможные следующие значения. 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY Значением 0 по умолчанию является значение по умолчанию.Область применения: SQL Server 2014 (12.x) и более поздних версий и База данных SQL Azure |
durability_desc |
nvarchar(60) | Допустимы следующие значения:SCHEMA_ONLY SCHEMA_AND_DATA Значение SCHEMA_AND_DATA указывает, что таблица является устойчивой, в памяти таблицей. SCHEMA_AND_DATA — значение по умолчанию для оптимизированных для памяти таблиц. Значение SCHEMA_ONLY указывает, что данные таблицы не сохраняются при перезапуске базы данных с оптимизированными для памяти объектами.Область применения: SQL Server 2014 (12.x) и более поздних версий и База данных SQL Azure |
temporal_type |
tinyint | Числовое значение, представляющее тип таблицы 0 = NON_TEMPORAL_TABLE 1 = HISTORY_TABLE (связанная с темпоральной таблицей)2 = SYSTEM_VERSIONED_TEMPORAL_TABLE Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL Azure |
temporal_type_desc |
nvarchar(60) | Текстовое описание типа таблицыNON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL Azure |
history_table_id |
int | Если temporal_type это или ledger_type есть2 2 , возвращает object_id таблицу, которая сохраняет исторические данные для темпоральной таблицы, в противном случае возвращаетсяNULL .Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL Azure |
is_remote_data_archive_enabled |
bit | Указывает, что для таблицы уже включено Stretch. 0 = для таблицы не включено Stretch. 1 = для таблицы включено Stretch. Дополнительные сведения см. в разделе Stretch Database. Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL Azure |
is_external |
bit | Указывает, что таблица является внешней. 0 = таблица не является внешней. 1 = таблица является внешней. Область применения: SQL Server 2016 (13.x) и более поздних версий, База данных SQL Azure и Azure Synapse Analytics |
history_retention_period |
int | Числовое значение, представляющее длительность периода хранения темпорального журнала в единицах, указанных в history_retention_period_unit .Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
history_retention_period_unit |
int | Числовое значение, представляющее тип единицы периода хранения темпорального журнала. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
history_retention_period_unit_desc |
nvarchar(10) | Текстовое описание типа единицы хранения темпорального журнала.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
is_node |
bit | 1 = таблица узлов Graph. 0 = не таблица узлов графа. Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
is_edge |
bit | 1 = таблица пограничных вычислений графа. 0 = не таблица границ графа. Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure |
data_retention_period |
int | Числовое значение, представляющее длительность периода хранения данных в единицах, указанных в data_retention_period_unit .Применяется только к: Только для пограничных вычислений SQL Azure |
data_retention_period_unit |
int | Числовое значение, представляющее тип единицы хранения данных. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Применяется только к: Только для пограничных вычислений SQL Azure |
data_retention_period_unit_desc |
nvarchar(10) | Текстовое описание типа единицы хранения данных.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Применяется только к: Только для пограничных вычислений SQL Azure |
ledger_type |
tinyint | Числовое значение указывает, является ли таблица таблицей реестра. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (связанная с обновляемой таблицей реестра)2 = UPDATABLE_LEDGER_TABLE 3 = APPEND_ONLY_LEDGER_TABLE Дополнительные сведения о реестре базы данных см. в статье Реестр. Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL Azure |
ledger_type_desc |
nvarchar(60) | Текстовое описание значения в столбце ledger_type :NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL Azure |
ledger_view_id |
int | Если ledger_type IN (2, 3) возвращается object_id представление реестра, в противном случае возвращается NULL .Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL Azure |
is_dropped_ledger_table |
bit | Указывает таблицу реестра, которая была удалена. Область применения: SQL Server 2022 (16.x) и более поздних версий и База данных SQL Azure |
Разрешения
Видимость метаданных в представлениях каталога ограничена защищаемыми объектами, которыми владеет пользователь или которым пользователь получил некоторое разрешение. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
А. Возврат всех пользовательских таблиц без первичного ключа
В следующем примере возвращаются все пользовательские таблицы, у которых нет первичного ключа.
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. Перечисление темпоральных таблиц, связанных с данными
В следующем примере показано, как можно предоставлять связанные темпоральные данные.
Область применения: SQL Server 2016 (13.x) и более поздних версий и База данных SQL Azure.
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;
В. Перечисление сведений о хранении темпорального журнала
В следующем примере показано, как можно предоставить сведения о хранении темпорального журнала.
Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure.
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;