sys.tables (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Devuelve una fila para cada tabla de usuario de una base de datos de SQL Server.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
<inherited columns> |
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 | Identificador de espacio de datos para un grupo de archivos FILESTREAM o un esquema de partición que consta de 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 unir a las siguientes vistas 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 (unirse a 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 SET ANSI_NULLS opción ON de base de datos . |
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 ha cambiado durante el último ALTER ASSEMBLY . Se restablecerá a 0 después de la siguiente operación correcta DBCC CHECKDB o DBCC CHECKTABLE . |
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 LOCK_ESCALATION opción 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 | 1 = La tabla es un objeto FileTable. Para obtener más información sobre FileTables, consulte FileTables (SQL Server). Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, y Azure SQL Database. |
is_memory_optimized |
bit | 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. Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database. |
durability |
tinyint | Estos son los valores posibles: 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY Un valor de 0 es el valor predeterminado.Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database |
durability_desc |
nvarchar(60) | Los posibles valores son los siguientes:SCHEMA_ONLY SCHEMA_AND_DATA Un valor de SCHEMA_AND_DATA indica que la tabla es una tabla duradera en memoria. SCHEMA_AND_DATA es el valor predeterminado para las tablas optimizadas para memoria. Un valor de indica que los datos de SCHEMA_ONLY la tabla no se conservan al reiniciar la base de datos con objetos optimizados para memoria.Se aplica a: SQL Server 2014 (12.x) y versiones posteriores, y Azure SQL Database |
temporal_type |
tinyint | Valor numérico que representa el tipo de tabla: 0 = NON_TEMPORAL_TABLE 1 = HISTORY_TABLE (asociado a una tabla temporal)2 = SYSTEM_VERSIONED_TEMPORAL_TABLE Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database |
temporal_type_desc |
nvarchar(60) | Descripción de texto del tipo de tabla:NON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database |
history_table_id |
int | Cuando temporal_type es 2 o ledger_type es 2 , devuelve object_id de la tabla que mantiene los datos históricos de una tabla temporal; de lo contrario, devuelve NULL .Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database |
is_remote_data_archive_enabled |
bit | 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. Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, y Azure SQL Database |
is_external |
bit | Indica que la tabla es una tabla externa. 0 = La tabla no es una tabla externa. 1 = La tabla es una tabla externa. Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, Azure SQL Database y Azure Synapse Analytics |
history_retention_period |
int | Valor numérico que representa la duración del período de retención del historial temporal en unidades especificadas con history_retention_period_unit .Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
history_retention_period_unit |
int | Valor numérico que representa el tipo de unidad del período de retención de historial temporal. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
history_retention_period_unit_desc |
nvarchar(10) | Descripción de texto del tipo de unidad del período de retención de historial temporal.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
is_node |
bit | 1 = Tabla de nodos de grafos. 0 = No una tabla de nodo de grafo. Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
is_edge |
bit | 1 = Tabla perimetral del grafo. 0 = No una tabla perimetral de grafos. Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
data_retention_period |
int | Valor numérico que representa la duración del período de retención de datos en unidades especificadas con data_retention_period_unit .Se aplica a:solo para Azure SQL Edge |
data_retention_period_unit |
int | Valor numérico que representa el tipo de unidad de período de retención de datos. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Se aplica a:solo para Azure SQL Edge |
data_retention_period_unit_desc |
nvarchar(10) | Descripción del texto del tipo de unidad de período de retención de datos.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Se aplica a:solo para Azure SQL Edge |
ledger_type |
tinyint | El valor numérico indica si la tabla es una tabla de libro de contabilidad. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (asociado a una tabla actualizable del libro de contabilidad)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. Se aplica a: SQL Server 2022 (16.x) y versiones posteriores, y Azure SQL Database |
ledger_type_desc |
nvarchar(60) | Descripción del texto de un valor en la ledger_type columna:NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE Se aplica a: SQL Server 2022 (16.x) y versiones posteriores, y Azure SQL Database |
ledger_view_id |
int | Cuando ledger_type IN (2, 3) devuelve object_id la vista de libro de contabilidad, de lo contrario devuelve NULL .Se aplica a: SQL Server 2022 (16.x) y versiones posteriores, y Azure SQL Database |
is_dropped_ledger_table |
bit | Indica una tabla de libro de contabilidad que se quitó. Se aplica a: SQL Server 2022 (16.x) y versiones posteriores, y Azure SQL Database |
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 ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.
Ejemplos
A Devolver todas las tablas de usuario sin una clave principal
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
B. Enumeración de tablas relacionadas con datos temporales
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;
C. Enumeración de información sobre la retención del historial temporal
En el ejemplo siguiente se muestra cómo se puede exponer información sobre la retención de historial temporal.
Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y 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;