Tablas base del sistema

Se aplica a:SQL ServerAzure SQL Managed Instance

Las tablas base del sistema son las tablas subyacentes que almacenan los metadatos para una base de datos específica. La base de datos maestra es especial en este sentido porque contiene algunas tablas adicionales que no se encuentran en ninguna de las otras bases de datos. Estas tablas contienen metadatos persistentes con un ámbito para todo el servidor.

Importante

Las tablas base del sistema solo se usan dentro del Motor de base de datos de SQL Server y no son para uso general del cliente. Están sujetos a cambios y su compatibilidad no está garantizada.

Metadatos de tablas base del sistema

Un receptor que tenga permiso CONTROL, ALTER o VIEW DEFINITION en una base de datos puede ver los metadatos de la tabla base del sistema en la vista de catálogo sys.objects . El receptor también puede resolver los nombres y los identificadores de objeto de las tablas base del sistema mediante funciones integradas, como OBJECT_NAME y OBJECT_ID.

Para enlazar a una tabla base del sistema, un usuario debe conectarse a la instancia de SQL Server mediante la conexión de administrador dedicada (DAC). Si intentar ejecutar una consulta SELECT de una tabla base del sistema sin conectarse a través de la conexión DAC, se producirá un error.

Importante

El acceso a las tablas base del sistema mediante DAC solo está diseñado para el personal de Microsoft y no es un escenario de cliente compatible.

Tablas base del sistema

En la tabla siguiente se enumeran y describen cada tabla base del sistema en SQL Server.

Tabla base Descripción
sys.sysschobjs Existe en todas las bases de datos. Cada fila representa un objeto en la base de datos.
sys.sysbinobjs Existe en todas las bases de datos. Contiene una fila para cada entidad de Service Broker en la base de datos. Las entidades de Service Broker contienen los siguientes elementos:

Tipo de mensaje

Contrato de servicio

Service

Los nombres y tipos utilizan intercalación binaria fija.
sys.sysclsobjs Existe en todas las bases de datos. Contiene una fila para cada entidad clasificada que comparte las mismas propiedades comunes, entre las que se incluyen las siguientes:

Ensamblado

Dispositivo de copia de seguridad

Catálogo de texto completo

Función de partición

Esquema de partición

Grupo de archivos

Clave de ofuscación

Esquema
sys.sysnsobjs Existe en todas las bases de datos. Contiene una fila para cada entidad centrada en el espacio de nombres. Esta tabla se usa para almacenar entidades de la colección de XML.
sys.syscolpars Existe en todas las bases de datos. Contiene una fila para cada columna en una tabla, vista o función con valores de tabla. También contiene las filas para cada parámetro de un procedimiento o función.
sys.systypedsubobjs Existe en todas las bases de datos. Contiene una fila para cada subentidad escrita. Solo se incluyen en esta categoría los parámetros de la función de partición.
sys.sysidxstats Existe en todas las bases de datos. Contiene una fila para cada índice o estadísticas para tablas y vistas indizadas

Nota: Cada índice (excepto el montón) está asociado a una estadística que tiene el mismo nombre que el índice.
sys.sysiscols Existe en todas las bases de datos. Contiene una fila para cada índice persistente y para columna de estadísticas.
sys.sysscalartypes Existe en todas las bases de datos. Contiene una fila por cada tipo de sistema o cada tipo definido por el usuario.
sys.sysdbreg Solo existe en la base de datos maestra . Contiene una fila por cada base de datos registrada.
sys.sysxsrvs Solo existe en la base de datos maestra . Contiene una fila para cada servidor local, vinculado o remoto.
sys.sysrmtlgns Esta tabla base del sistema solo existe en la base de datos maestra . Contiene una fila para cada asignación de inicio de sesión remota. Se utiliza para asignar inicios de sesión entrantes originados en el servidor correspondiente para un inicio de sesión local real.
sys.syslnklgns Solo existe en la base de datos maestra . Contiene una fila para cada asignación de inicio de sesión vinculada. Las llamadas a procedimiento remoto y las consultas distribuidas que proceden de un servidor local fuera de un servidor vinculado correspondiente utilizan las asignaciones de inicio de sesión vinculadas.
sys.sysxlgns Solo existe en la base de datos maestra . Contiene una fila para cada entidad de seguridad de servidor.
sys.sysdbfiles Existe en todas las bases de datos. Si el dbid de columna es cero, la fila representa un archivo que pertenece a esta base de datos. En la base de datos maestra, el dbid de columna puede ser distinto de cero. Cuando eso ocurra, la fila representará un archivo maestro.
sys.sysusermsg Solo existe en la base de datos maestra . Cada fila representa un mensaje de error definido por el usuario.
sys.sysprivs Existe en todas las bases de datos. Contiene una fila para cada permiso de base de datos o de servidor.

Nota: Los permisos de nivel de servidor se almacenan en la base de datos maestra .
sys.sysowners Existe en todas las bases de datos. Cada fila representa una entidad de base de datos.
sys.sysobjkeycrypts Existe en todas las bases de datos. Contiene una fila para cada clave simétrica, cifrado o propiedad criptográfica asociada a un objeto.
sys.syscerts Existe en todas las bases de datos. Contiene una fila para cada certificado en una base de datos.
sys.sysasymkeys Existe en todas las bases de datos. Cada fila representa una clave asimétrica.
sys.ftinds Existe en todas las bases de datos. Contiene una fila para cada índice de texto completo de la base de datos.
sys.sysxprops Existe en todas las bases de datos. Contiene una fila para cada propiedad extendida.
sys.sysallocunits Existe en todas las bases de datos. Contiene una fila para cada unidad de asignación de almacenamiento.
sys.sysrowsets Existe en todas las bases de datos. Contiene una fila para cada conjunto de filas de particiones para un índice o montón.
sys.sysrowsetrefs Existe en todas las bases de datos. Contiene una fila para cada índice de la referencia del conjunto de filas.
sys.syslogshippers Solo existe en la base de datos maestra . Contiene una fila para cada testigo de creación de reflejo de la base de datos.
sys.sysremsvcbinds Existe en todas las bases de datos. Contiene una fila para cada enlace de servicio remoto.
sys.sysconvgroup Existe en todas las bases de datos. Contiene una fila para cada instancia de servicio de Service Broker.
sys.sysxmitqueue Existe en todas las bases de datos. Contiene una fila por cada cola de transmisión de Service Broker.
sys.sysdesend Existe en todas las bases de datos. Contiene una fila para cada extremo de envío de una conversación de Service Broker.
sys.sysdercv Existe en todas las bases de datos. Contiene una fila para cada extremo de recepción de una conversación de Service Broker.
sys.sysendpts Solo existe en la base de datos maestra . Contiene una fila para cada extremo creado en el servidor.
sys.syswebmethods Solo existe en la base de datos maestra . Contiene una fila para cada método SOAP definido en un extremo HTTP habilitado por SOAP que se crea en el servidor.
sys.sysqnames Existe en todas las bases de datos. Contiene una fila para cada espacio de nombres o nombre completo de un token del identificador de 4 bytes.
sys.sysxmlcomponent Existe en todas las bases de datos. Cada fila representa un componente de esquema XML.
sys.sysxmlfacet Existe en todas las bases de datos. Contiene una fila para cada aspecto de XML (restricción) de definición de tipo de XML.
sys.sysxmlplacement Existe en todas las bases de datos. Contiene una fila para cada ubicación XML de componentes XML.
sys.syssingleobjrefs Existe en todas las bases de datos. Contiene una fila para cada referencia general N a 1.
sys.sysmultiobjrefs Existe en todas las bases de datos. Contiene una fila para cada referencia general N a N.
sys.sysobjvalues Existe en todas las bases de datos. Contiene una fila para cada propiedad de valor general de una entidad.
sys.sysguidrefs Existe en todas las bases de datos. Contiene una fila para cada referencia del identificador clasificado por GUID.

Actualización de tablas base del sistema

Puede ver los datos de las tablas del sistema mediante las vistas de catálogo del sistema. Para actualizar los metadatos de una tabla base del sistema, use la interfaz de Transact-SQL adecuada (por ejemplo, instrucciones DDL). No se pueden actualizar manualmente las tablas del sistema. SQL Server notifica los mensajes siguientes al realizar actualizaciones directas en las tablas del sistema.

Una tabla del sistema se actualiza manualmente.

Mensaje 17659: Advertencia: es posible que no se haya mantenido el identificador de id<>. de tabla del sistema directamente en el identificador <> de la base de datos y es posible que no se haya mantenido la coherencia de la memoria caché. Debe reiniciar SQL Server.

Inicio de una base de datos con una tabla del sistema que se ha actualizado manualmente

Mensaje 3859: Advertencia: El catálogo del sistema se actualizó directamente en el identificador de base de datos 17, más recientemente en date_time.

Ejecutar el comando DBCC_CHECKDB después de actualizar manualmente una tabla del sistema

Mensaje 3859: Advertencia: El catálogo del sistema se actualizó directamente en el identificador de base de datos 17, más recientemente en date_time.

Si realiza actualizaciones manuales en una tabla del sistema y encuentra un problema, es posible que se le pida que restaure desde una copia de seguridad o copie los datos de la base de datos afectada a una nueva base de datos. Obtenga más información sobre los mensajes de error de acción del usuario.