sys.tables (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Retorna uma linha para cada tabela de usuário em um banco de dados SQL Server.

Nome da coluna Tipo de dados Descrição
<inherited columns> Para obter uma lista de colunas herdadas por essa exibição, consulte sys.objects (Transact-SQL).
lob_data_space_id int O valor diferente de zero é a ID do espaço de dados (esquema de partição ou grupo de arquivos) que armazena os dados de objeto binário grande (LOB) dessa tabela. Exemplos de tipos de dados LOB incluem varbinary(max), varchar(max), geography ou xml.

0 = A tabela não tem dados LOB.
filestream_data_space_id int A ID do espaço de dados para um grupo de arquivos FILESTREAM ou um esquema de partição que consiste em grupos de arquivos FILESTREAM.

Para relatar o nome de um grupo de arquivos FILESTREAM, execute a consulta SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.
sys.tables pode ser unido às seguintes visualizações em 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 (junte-se em filegroup_id)
max_column_id_used int ID máxima de coluna já usada por esta tabela.
lock_on_bulk_load bit A tabela é bloqueada em carregamento em massa. Para obter mais informações, confira sp_tableoption (Transact-SQL).
uses_ansi_nulls bit A tabela foi criada com a SET ANSI_NULLS opção ONde banco de dados .
is_replicated bit 1 = A tabela é publicada usando replicação de instantâneo ou replicação transacional.
has_replication_filter bit 1 = A tabela tem um filtro de replicação.
is_merge_published bit 1 = A tabela é publicada usando replicação de mesclagem.
is_sync_tran_subscribed bit 1 = A tabela é inscrita usando uma assinatura de atualização imediata.
has_unchecked_assembly_data bit 1 = A tabela contém dados persistentes que dependem de um assembly cuja definição foi alterada durante o último ALTER ASSEMBLY. Será redefinido para 0 após o próximo sucesso DBCC CHECKDB ou DBCC CHECKTABLE.
text_in_row_limit int O máximo de bytes permitidos para texto em linha.

0 = Texto em opção de linha não é definido. Para obter mais informações, confira sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Tipos de valor grande são armazenados fora de linha. Para obter mais informações, confira sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = A tabela está habilitada para Change Data Capture. Para obter mais informações, consulte sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Um valor da LOCK_ESCALATION opção para a tabela:

0 = TABLE
1 = DISABLE
2 = AUTO
lock_escalation_desc nvarchar(60) Uma descrição de texto da opção lock_escalation da tabela. Os valores possíveis são: TABLE, AUTO e DISABLE.
is_filetable bit 1 = A tabela é uma FileTable.

Para obter mais informações sobre FileTables, veja FileTables (SQL Server).

Aplica-se a: SQL Server 2012 (11.x) e versões posteriores e Banco de Dados SQL do Azure
is_memory_optimized bit O valores possíveis são os seguintes:

0 = sem otimização de memória.
1 = com otimização de memória.

Um valor de 0 é o valor padrão.

As tabelas com otimização de memória estão em tabelas de usuário da memória, o esquema que é mantido no disco, semelhante a outras tabelas de usuário. As tabelas otimizadas em memória podem ser acessadas de procedimentos armazenados compilados nativamente.

Aplica-se a: SQL Server 2014 (12.x) e posteriores e Banco de Dados SQL do Azure.
durability tinyint O valores possíveis são os seguintes:

0 = SCHEMA_AND_DATA
1 = SCHEMA_ONLY

Um valor de 0 é o valor padrão.

Aplica-se a: SQL Server 2014 (12.x) e versões posteriores e Banco de Dados SQL do Azure
durability_desc nvarchar(60) O valores possíveis são os seguintes:

SCHEMA_ONLY
SCHEMA_AND_DATA

Um valor de SCHEMA_AND_DATA indica que a tabela é uma tabela durável na memória. SCHEMA_AND_DATA é o valor padrão para tabelas com otimização de memória. Um valor de indica que os dados da SCHEMA_ONLY tabela não são persistidos na reinicialização do banco de dados com objetos com otimização de memória.

Aplica-se a: SQL Server 2014 (12.x) e versões posteriores e Banco de Dados SQL do Azure
temporal_type tinyint O valor numérico que representa o tipo de tabela:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE (associado a uma tabela temporal)
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL do Azure
temporal_type_desc nvarchar(60) A descrição do texto do tipo de tabela:

NON_TEMPORAL_TABLE
HISTORY_TABLE
SYSTEM_VERSIONED_TEMPORAL_TABLE

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL do Azure
history_table_id int Quando temporal_type é 2 ou ledger_type é 2, retorna object_id da tabela que mantém dados históricos para uma tabela temporal, caso contrário, retorna NULL.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL do Azure
is_remote_data_archive_enabled bit Indica se a tabela está habilitada para Stretch.

0 = A tabela não está habilitada para Stretch.
1 = A tabela está habilitada para Stretch.

Para obter mais informações, consulte Stretch Database.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores e Banco de Dados SQL do Azure
is_external bit Indica que a tabela é uma tabela externa.

0 = A tabela não é uma tabela externa.
1 = A tabela é uma tabela externa.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores, Banco de Dados SQL do Azure e Azure Synapse Analytics
history_retention_period int O valor numérico que representa a duração do período de retenção do histórico temporal em unidades especificadas com history_retention_period_unit.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
history_retention_period_unit int O valor numérico que representa o tipo de unidade de período de retenção do histórico temporal.

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

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
history_retention_period_unit_desc nvarchar(10) A descrição do texto do tipo de unidade de período de retenção do histórico temporal.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
is_node bit 1 = Tabela de nós do gráfico.
0 = Não é uma tabela de nó de gráfico.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
is_edge bit 1 = Tabela de borda do gráfico.
0 = Não é uma tabela de borda de gráfico.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
data_retention_period int O valor numérico que representa a duração do período de retenção de dados em unidades especificadas com data_retention_period_unit.

Aplica-se a:somente ao SQL do Azure no Edge
data_retention_period_unit int O valor numérico que representa o tipo de unidade de período de retenção de dados.

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

Aplica-se a:somente ao SQL do Azure no Edge
data_retention_period_unit_desc nvarchar(10) A descrição de texto do tipo de unidade de período de retenção de dados.

INFINITE
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR

Aplica-se a:somente ao SQL do Azure no Edge
ledger_type tinyint O valor numérico indica se a tabela é uma tabela do razão.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (associado a uma tabela contábil atualizável)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Para obter mais informações sobre o razão do banco de dados, confira Razão.

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure
ledger_type_desc nvarchar(60) A descrição do texto de um valor na ledger_type coluna:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure
ledger_view_id int Quando ledger_type IN (2, 3) retorna object_id a exibição do livro-razão, caso contrário, retorna NULL.

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure
is_dropped_ledger_table bit Indica uma tabela contábil que foi descartada.

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores e Banco de Dados SQL do Azure

Permissões

A visibilidade dos metadados em exibições do catálogo está limitada aos protegíveis que pertencem a um usuário ou para os quais o usuário recebeu permissão. Para obter mais informações, consulte Metadata Visibility Configuration.

Exemplos

R. Retornar todas as tabelas de usuário sem uma chave primária

O exemplo a seguir retorna todas as tabelas de usuário que não têm uma chave primária.

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

O exemplo a seguir mostra como os dados temporais relacionados podem ser expostos.

Aplica-se a: SQL Server 2016 (13.x) e posteriores e Banco de Dados SQL do 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;

C. Listar informações sobre retenção de histórico temporal

O exemplo a seguir mostra como as informações sobre retenção de histórico temporal podem ser expostas.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do 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;