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 de SQL no Microsoft Fabric 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 ON de 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
B. Listar tabelas relacionadas a dados temporais
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;