sys.tables (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve una fila para cada tabla de usuario de SQL Server.

Nombre de la columna Tipo de datos Descripción
<columnas heredadas> Para obtener una lista de las columnas que hereda esta vista, consulte sys.objects (Transact-SQL).
lob_data_space_id int Un valor diferente de cero es el identificador del espacio de datos (grupo de archivos o esquema de partición) que contiene los datos de objeto binario grande (LOB) para esta tabla. Entre los ejemplos de tipos de datos LOB se encuentran varbinary(max), varchar(max), geografía o xml.

0 = La tabla no tiene datos LOB.
filestream_data_space_id int Es el identificador del espacio de datos para un grupo de archivos FILESTREAM o un esquema de partición compuesto por grupos de archivos FILESTREAM.

Para notificar el nombre de un grupo de archivos FILESTREAM, ejecute la consulta SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.

sys.tables se puede combinar con las vistas siguientes en 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 (combinar en filegroup_id)
max_column_id_used int Identificador de columna máximo que se ha utilizado en esta tabla.
lock_on_bulk_load bit La tabla está bloqueada en una carga masiva. Para obtener más información, vea sp_tableoption (Transact-SQL).
uses_ansi_nulls bit La tabla se creó con la opción de base de datos SET ANSI_NULLS establecida en ON.
is_replicated bit 1 = La tabla se publicó con la replicación de instantáneas o transaccional.
has_replication_filter bit 1 = La tabla tiene un filtro de replicación.
is_merge_published bit 1 = La tabla se publicó con la replicación de mezcla.
is_sync_tran_subscribed bit 1 = La tabla se suscribió con una suscripción de actualización inmediata.
has_unchecked_assembly_data bit 1 = La tabla contiene datos persistentes que dependen de un ensamblado cuya definición cambió durante el último ALTER ASSEMBLY. Se restablecerá en 0 tras la siguiente operación DBCC CHECKDB o DBCC CHECKTABLE correcta.
text_in_row_limit int Número máximo de bytes permitido para text in row.

0 = La opción text in row no está establecida. Para obtener más información, vea sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = Los tipos de valores grandes se guardan fuera de la fila. Para obtener más información, vea sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = La tabla está habilitada para la captura de datos modificados. Para obtener más información, consulte sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Valor de la opción LOCK_ESCALATION para la tabla:

0 = TABLE

1 = DISABLE

2 = AUTO
lock_escalation_desc nvarchar(60) Descripción de texto de la opción lock_escalation para la tabla. Los valores posibles son: TABLE, AUTO y DISABLE.
is_filetable bit Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, y Azure SQL Database.

1 = La tabla es un objeto FileTable.

Para obtener más información sobre FileTables, consulte FileTables (SQL Server).
durabilidad tinyint Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database

Estos son los valores posibles:

0 = SCHEMA_AND_DATA

1 = SCHEMA_ONLY

El valor 0 es el predeterminado.
durability_desc nvarchar(60) Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database

Los posibles valores son los siguientes:

SCHEMA_ONLY

SCHEMA_AND_DATA

El valor de SCHEMA_AND_DATA indica que la tabla es una tabla en memoria perdurable. SCHEMA_AND_DATA es el valor predeterminado para las tablas optimizadas para memoria. El valor de SCHEMA_ONLY indica que los datos de la tabla no son persistentes tras reiniciar la base de datos con objetos optimizados para memoria.
is_memory_optimized bit Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database

Los posibles valores son los siguientes:

0 = no optimizado en memory.

1 = está optimizado para memoria.

El valor 0 es el predeterminado.

Las tablas optimizadas para memoria se encuentran en las tablas de usuario de memoria, el esquema que se conserva en el disco similar a otras tablas de usuario. Se puede tener acceso a las tablas optimizadas para memoria desde procedimientos almacenados compilados de forma nativa.
temporal_type tinyint Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database

Valor numérico que representa el tipo de tabla:

0 = NON_TEMPORAL_TABLE

1 = HISTORY_TABLE (se asocia a una tabla temporal)

2 = SYSTEM_VERSIONED_TEMPORAL_TABLE
temporal_type_desc nvarchar(60) Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database

Descripción de texto del tipo de tabla:

NON_TEMPORAL_TABLE

HISTORY_TABLE

SYSTEM_VERSIONED_TEMPORAL_TABLE
history_table_id int Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database

Cuando temporal_type = 2 o ledger_type = 2 devuelve object_id de la tabla que mantiene datos históricos para una tabla temporal; de lo contrario, devuelve NULL.
is_remote_data_archive_enabled bit Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database

Indica si se ha habilitado la tabla para Stretch.

0 = La tabla no está habilitada para Stretch.

1 = La tabla está habilitada para Stretch.

Para obtener más información, vea Stretch Database.
is_external bit Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, Azure SQL Database y Azure Synapse Analytics.

Indica que la tabla es una tabla externa.

0 = La tabla no es una tabla externa.

1 = La tabla es una tabla externa.
history_retention_period int Se aplica a: Azure SQL Database.

Valor numérico que representa la duración del período de retención de historial temporal en unidades especificadas con history_retention_period_unit.
history_retention_period_unit int Se aplica a: Azure SQL Database.

Valor numérico que representa el tipo de unidad del período de retención de historial temporal.

-1: INFINITE

3: DAY

4: WEEK

5: MONTH

6: YEAR
history_retention_period_unit_desc nvarchar(10) Se aplica a: Azure SQL Database.

Descripción de texto del tipo de unidad del período de retención de historial temporal.

INFINITE

DAY

WEEK

MONTH

YEAR
is_node bit Se aplica a: SQL Server 2017 (14.x) y Azure SQL Database.

1 = Se trata de una tabla de nodo de gráfico.

0 = No se trata de una tabla de nodo de gráfico.
is_edge bit Se aplica a: Azure SQL Database.

1 = Se trata de una tabla perimetral de gráfico.

0 = No se trata de una tabla perimetral de gráfico.
ledger_type tinyint Se aplica a: a partir de SQL Server 2022 (16.x), Azure SQL Database.

El valor numérico indica si la tabla es una tabla de libro de contabilidad.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (se asocia a una tabla de libro de contabilidad actualizable)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Para obtener más información sobre el libro de contabilidad de base de datos, consulte Libro de contabilidad.
ledger_type_desc nvarchar(60) Se aplica a: a partir de SQL Server 2022 (16.x), Azure SQL Database.

Descripción de texto de un valor en la columna ledger_type:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE
ledger_view_id int Se aplica a: a partir de SQL Server 2022 (16.x), Azure SQL Database.

Cuando ledger_type IN (2,3) devuelve object_id de la vista del libro de contabilidad; de lo contrario, devuelve NULL.
is_dropped_ledger_table bit Se aplica a: a partir de SQL Server 2022 (16.x), Azure SQL Database.

Indica una tabla de libro de contabilidad que se ha quitado.

Permisos

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplos

En el ejemplo siguiente se devuelven todas las tablas de usuario que no tienen una clave principal.

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  
  

En el ejemplo siguiente se muestra cómo se pueden exponer datos temporales relacionados.

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database

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  

En el ejemplo siguiente se muestra cómo se puede exponer información sobre la retención de historial temporal.

Se aplica a: Azure SQL Database.

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 también

Vistas de catálogo de objetos (Transact-SQL)
Vistas de catálogo (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server
In-Memory OLTP (optimización In-Memory)