sys.tables (Transact-SQL)
Aplica-se a:SQL Server (todas as versões compatíveis)
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics 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)