Tablas base del sistema
Se aplica a: SQL Server Azure SQL Instancia administrada
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.