sys.tables (Transact-SQL)

Aplica-se a:yesSQL Server (todas as versões compatíveis) YesBanco de Dados SQL do Azure YesInstância Gerenciada de SQL do Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

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

Nome da coluna Tipo de dados Descrição
<colunas herdadas> Para obter uma lista de colunas que essa exibição herda, 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 contém dados LOB.
filestream_data_space_id int É a ID do espaço de dados de um grupo de arquivos FILESTREAM ou de 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 exibiçõ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 (ingressar no 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, consulte sp_tableoption (Transact-SQL).
uses_ansi_nulls bit A tabela foi criada com a opção de banco de dados SET ANSI_NULLS definida como ON.
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á redefinida como 0 depois do próximo DBCC CHECKDB ou DBCC CHECKTABLE bem-sucedido.
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, consulte 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, consulte 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 O valor da opção LOCK_ESCALATION da 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 Aplica-se a: SQL Server 2012 (11.x) e posterior e Banco de Dados SQL do Azure.

1 = A tabela é uma FileTable.

Para obter mais informações sobre FileTables, consulte FileTables (SQL Server).
durabilidade tinyint Aplica-se a: SQL Server 2014 (12.x) e posterior e Banco de Dados SQL do Azure.

O valores possíveis são os seguintes:

0 = SCHEMA_AND_DATA

1 = SCHEMA_ONLY

O valor de 0 é o valor padrão.
durability_desc nvarchar(60) Aplica-se a: SQL Server 2014 (12.x) e posterior e Banco de Dados SQL do Azure.

O valores possíveis são os seguintes:

SCHEMA_ONLY

SCHEMA_AND_DATA

O valor de SCHEMA_AND_DATA indica que a tabela é uma tabela na memória e durável. SCHEMA_AND_DATA é o valor padrão para tabelas com otimização de memória. O valor de SCHEMA_ONLY indica que os dados da tabela não serão mantidos na reinicialização do banco de dados com objetos com otimização de memória.
is_memory_optimized bit Aplica-se a: SQL Server 2014 (12.x) e posterior e Banco de Dados SQL do Azure.

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.

Tabelas com otimização de memória são tabelas de usuário na memória, o esquema do qual é mantido em disco semelhante a outras tabelas de usuário. As tabelas otimizadas em memória podem ser acessadas de procedimentos armazenados compilados nativamente.
temporal_type tinyint Aplica-se a: SQL Server 2016 (13.x) e posterior e Banco de Dados SQL do Azure.

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
temporal_type_desc nvarchar(60) Aplica-se a: SQL Server 2016 (13.x) e posterior e Banco de Dados SQL do Azure.

A descrição do texto do tipo de tabela:

NON_TEMPORAL_TABLE

HISTORY_TABLE

SYSTEM_VERSIONED_TEMPORAL_TABLE
history_table_id int Aplica-se a: SQL Server 2016 (13.x) e posterior e Banco de Dados SQL do Azure.

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

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.
is_external bit Aplica-se a: SQL Server 2016 (13.x) e posterior, Banco de Dados SQL do Azure e Azure Synapse Analytics.

Indica que a tabela é uma tabela externa.

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

1 = A tabela é uma tabela externa.
history_retention_period int Aplica-se a: Banco de Dados SQL do Azure.

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.
history_retention_period_unit int Aplica-se a: Banco de Dados SQL do Azure.

O valor numérico que representa o tipo de unidade de período de retenção do histórico temporal.

-1: INFINITE

3: DIA

4: SEMANA

5: MÊS

6: ANO
history_retention_period_unit_desc nvarchar(10) Aplica-se a: Banco de Dados SQL do Azure.

A descrição do texto do tipo de unidade de período de retenção do histórico temporal.

INFINITE

DAY

WEEK

MONTH

YEAR
is_node bit Aplica-se a: SQL Server 2017 (14.x) e Banco de Dados SQL do Azure.

1 = Esta é uma tabela de nó de grafo.

0 = Esta não é uma tabela de nó de grafo.
is_edge bit Aplica-se a: Banco de Dados SQL do Azure.

1 = Esta é uma tabela de borda do grafo.

0 = Esta não é uma tabela de borda de grafo.
ledger_type tinyint Aplica-se a: Banco de Dados SQL do Azure.

O valor numérico indica se a tabela é uma tabela de razão.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (associado a uma tabela de razão atualizável)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Para obter mais informações sobre o razão do banco de dados, consulte Banco de Dados SQL do Azure razão.
ledger_type_desc nvarchar(60) Aplica-se a: Banco de Dados SQL do Azure.

A descrição de texto de um valor na coluna ledger_type:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE
ledger_view_id int Aplica-se a: Banco de Dados SQL do Azure.

Quando ledger_type IN (2,3) retorna object_id do modo de exibição do razão, caso contrário, retorna NULL.
is_dropped_ledger_table bit Aplica-se a: Banco de Dados SQL do Azure.

Indica uma tabela do razão que foi descartada.

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

O exemplo a seguir retorna todas as tabelas de usuário que não possuem 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 posterior 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  

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

Aplica-se a: 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 

Consulte Também

Exibições do catálogo de objeto (Transact-SQL)
Exibições do Catálogo (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
Consultando as perguntas frequentes do catálogo do sistema do SQL Server
OLTP na memória (otimização na memória)