Compartir a través de


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 master base de datos 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 en el motor de base de datos de SQL Server y no son para uso general del cliente. Las tablas base del sistema están sujetas a cambios y no se garantiza la compatibilidad.

Metadatos de la tabla base del sistema

Un receptor que tenga CONTROLpermiso , ALTERo VIEW DEFINITION en una base de datos puede ver los metadatos de la tabla base del sistema en la vista de sys.objects catálogo. 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). Al intentar ejecutar una consulta desde una SELECT tabla base del sistema sin conectarse mediante DAC, se produce 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 incluyen los siguientes objetos:

Tipo de mensaje
Contrato de servicio
Servicio
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 que incluyen los siguientes objetos:

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 master base de datos. Contiene una fila por cada base de datos registrada.
sys.sysxsrvs Solo existe en la master base de datos. Contiene una fila para cada servidor local, vinculado o remoto.
sys.sysrmtlgns Esta tabla base del sistema solo existe en la master base de datos. 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 master base de datos. 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 master base de datos. Contiene una fila para cada entidad de seguridad de servidor.
sys.sysdbfiles Existe en todas las bases de datos. Si la columna dbid es cero, la fila representa un archivo que pertenece a esta base de datos. En la master base de datos, la columna dbid puede ser distinto de cero. Cuando eso ocurra, la fila representará un archivo maestro.
sys.sysusermsg Solo existe en la master base de datos. 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 master base de datos.
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 master base de datos. 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 master base de datos. Contiene una fila para cada extremo creado en el servidor.
sys.syswebmethods Solo existe en la master base de datos. 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 las 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.

Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.

Iniciar una base de datos con una tabla del sistema que se actualizó manualmente

Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at date_time.

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

Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at 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. Para obtener más información, consulte acciones de usuario para MSSQLSERVER_8992.