sys.tables (Transact-SQL)
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform System (PDW)
Возвращает по одной строке для каждой пользовательской таблицы в SQL Server.
Имя столбца | Тип данных | Описание |
---|---|---|
<наследуемые столбцы> | Список столбцов, наследуемых этим представлением, см. в разделе 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 (join on 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 CHECKDB или DBCC CHECKTABLE. |
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 | Область применения: SQL Server 2012 (11.x) и выше, а также База данных SQL Azure. 1 = таблица имеет тип FileTable. Дополнительные сведения о таблицах FileTable см. в разделе Таблицы FileTable (SQL Server). |
устойчивость | tinyint | Применимо к: SQL Server 2014 (12.x) и выше, а также База данных SQL Azure. Возможные следующие значения. 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY Значением по умолчанию является значение 0. |
durability_desc | nvarchar(60) | Применимо к: SQL Server 2014 (12.x) и выше, а также База данных SQL Azure. Допустимы следующие значения: SCHEMA_ONLY SCHEMA_AND_DATA Значение SCHEMA_AND_DATA указывает, что таблица является надежной и оптимизированной для памяти. SCHEMA_AND_DATA — это значение по умолчанию для таблиц, оптимизированных для памяти. Значение SCHEMA_ONLY указывает, что табличные данные не будут сохранены после перезапуска базы данных с объектами, оптимизированными для памяти. |
is_memory_optimized | bit | Применимо к: SQL Server 2014 (12.x) и выше, а также База данных SQL Azure. Допустимы следующие значения: 0 = не оптимизировано для памяти. 1 = оптимизировано для памяти Значение по умолчанию — 0. Оптимизированные для памяти таблицы — это хранящиеся в памяти пользовательские таблицы, схемы которых сохраняются на диске аналогично другим пользовательским таблицам. Доступ к оптимизированным для памяти таблицам можно осуществлять из скомпилированных в собственном коде хранимых процедур. |
temporal_type | tinyint | Применимо к: SQL Server 2016 (13.x); и выше, а также База данных SQL Azure. Числовое значение, представляющее тип таблицы 0 = NON_TEMPORAL_TABLE 1 = HISTORY_TABLE (связано с темпоральной таблицей) 2 = SYSTEM_VERSIONED_TEMPORAL_TABLE |
temporal_type_desc | nvarchar(60) | Применимо к: SQL Server 2016 (13.x); и выше, а также База данных SQL Azure. Текстовое описание типа таблицы NON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE |
history_table_id | int | Применимо к: SQL Server 2016 (13.x); и выше, а также База данных SQL Azure. Если temporal_type = 2 или ledger_type = 2, то возвращается object_id таблицы, которая хранит исторические данные для темпоральной таблицы, в противном случае возвращается значение NULL. |
is_remote_data_archive_enabled | bit | Область применения: SQL Server 2016 (13.x) и более поздние версии, а также База данных SQL Azure. Указывает, что для таблицы уже включено Stretch. 0 = для таблицы не включено Stretch. 1 = для таблицы включено Stretch. Дополнительные сведения см. в разделе Stretch Database. |
is_external | bit | Область применения: SQL Server 2016 (13.x) и более поздние версии, База данных SQL Azure, а также Azure Synapse Analytics. Указывает, что таблица является внешней. 0 = таблица не является внешней. 1 = таблица является внешней. |
history_retention_period | int | Применимо к: База данных SQL Azure. Числовое значение, представляющее длительность периода хранения темпорального журнала в единицах, указанных с помощью history_retention_period_unit. |
history_retention_period_unit | int | Применимо к: База данных SQL Azure. Числовое значение, представляющее тип единицы периода хранения темпорального журнала. -1: НЕТ ОГРАНИЧЕНИЙ 3: ДЕНЬ 4: НЕДЕЛЯ 5: МЕСЯЦ 6: ГОД |
history_retention_period_unit_desc | nvarchar(10) | Применимо к: База данных SQL Azure. Текстовое описание типа единицы хранения темпорального журнала. INFINITE DAY WEEK MONTH YEAR |
is_node | bit | Применимо к: SQL Server 2017 (14.x); и База данных SQL Azure. 1 = это таблица узла графа. 0 = это не таблица узла графа. |
is_edge | bit | Применимо к: База данных SQL Azure. 1 = это таблица пограничных вычислений графа. 0 = это не таблица пограничных вычислений графа. |
ledger_type | tinyint | Применимо к: начиная с SQL Server 2022 (16.x) Azure SQL Database. Числовое значение указывает, является ли таблица таблицей реестра. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (связана с обновляемой таблицей реестра) 2 = UPDATABLE_LEDGER_TABLE 3 = APPEND_ONLY_LEDGER_TABLE Дополнительные сведения о реестре базы данных см. в статье Реестр. |
ledger_type_desc | nvarchar(60) | Применимо к: начиная с SQL Server 2022 (16.x) Azure SQL Database. Текстовое описание значения в столбце ledger_type: NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE |
ledger_view_id | int | Применимо к: начиная с SQL Server 2022 (16.x) Azure SQL Database. Если ledger_type — IN (2,3), то возвращается object_id представления реестра, в противном случае возвращается значение NULL. |
is_dropped_ledger_table | bit | Применимо к: начиная с SQL Server 2022 (16.x) Azure SQL Database. Указывает таблицу реестра, которая была удалена. |
Разрешения
Видимость метаданных в представлениях каталогов ограничивается защищаемыми объектами, которыми пользователь владеет или на которые ему были предоставлены разрешения. Дополнительные сведения см. в разделе 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
В следующем примере показано, как можно предоставлять связанные темпоральные данные.
Применимо к: 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 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
См. также:
Представления каталога объектов (Transact-SQL)
Представления каталога (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
Часто задаваемые вопросы о запросах к системному каталогу сервера SQL Server
In-Memory OLTP (оптимизация в памяти)