Tabelas base do sistema
Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure
Tabelas base do sistema são tabelas subjacentes que, na prática, armazenam metadados em um banco de dados específico. O banco de dados mestre é especial nesse aspecto porque contém algumas tabelas adicionais que não são encontradas em nenhum dos outros bancos de dados. Essas tabelas contêm metadados persistentes com escopo em todo o servidor.
Importante
As tabelas base do sistema são usadas somente no Mecanismo de Banco de Dados do SQL Server e não são para uso geral do cliente. Eles estão sujeitos à alteração e não há garantia de compatibilidade.
Metadados da tabela base do sistema
Um beneficiário que tenha permissão CONTROL, ALTER ou VIEW DEFINITION em um banco de dados pode ver os metadados da tabela base do sistema na exibição de catálogo sys.objects . O beneficiário também pode resolver os nomes e IDs de objeto de tabelas base do sistema usando funções internas, como OBJECT_NAME e OBJECT_ID.
Para vincular a uma tabela base do sistema, um usuário deve se conectar à instância do SQL Server usando a conexão de administrador dedicada (DAC). Um erro é gerado ao tentar executar uma consulta SELECT de uma tabela base do sistema sem fazer a conexão usando DAC.
Importante
O acesso às tabelas base do sistema usando o DAC foi projetado apenas para o pessoal da Microsoft e não é um cenário de cliente com suporte.
Tabelas base do sistema
A tabela a seguir lista e descreve cada tabela base do sistema no SQL Server.
Tabela base | Descrição |
---|---|
sys.sysschobjs | Existe em todos os bancos de dados. Cada linha representa um objeto no banco de dados. |
sys.sysbinobjs | Existe em todos os bancos de dados. Contém uma linha para cada entidade do Service Broker no banco de dados. Entidades do Service Broker incluem o seguinte: Tipo de mensagem Contrato de serviço Serviço Os nomes e tipos usam ordenação primária que é fixa. |
sys.sysclsobjs | Existe em todos os bancos de dados. Contém uma linha para cada entidade classificada que compartilha as mesmas propriedades comuns que incluem o seguinte: Assembly Dispositivo de backup Catálogo de texto completo Função de partição Esquema de partição Grupo de arquivos Tecla de ofuscação Esquema |
sys.sysnsobjs | Existe em todos os bancos de dados. Contém uma linha para cada entidade no escopo de namespace. Esta tabela é usada para armazenar entidades de coleção XML. |
sys.syscolpars | Existe em todos os bancos de dados. Contém uma linha para cada coluna de uma tabela, exibição ou função com valor de tabela. Também contém linhas para cada parâmetro de um procedimento ou função. |
sys.systypedsubobjs | Existe em todos os bancos de dados. Contém uma linha para cada subentidade digitada. Apenas parâmetros de função de partição entram nessa categoria. |
sys.sysidxstats | Existe em todos os bancos de dados. Contém uma linha para cada índice ou estatísticas de tabelas e exibições indexadas Nota: Cada índice (exceto heap) é associado a uma estatística que tem o mesmo nome que o índice. |
sys.sysiscols | Existe em todos os bancos de dados. Contém uma linha para cada índice persistente e coluna de estatísticas. |
sys.sysscalartypes | Existe em todos os bancos de dados. Contém uma linha para cada tipo definido pelo usuário ou sistema. |
sys.sysdbreg | Existe somente no banco de dados mestre . Contém uma linha para cada banco de dados registrado. |
sys.sysxsrvs | Existe somente no banco de dados mestre . Contém uma linha para cada servidor local, vinculado ou remoto. |
sys.sysrmtlgns | Essa tabela base do sistema existe somente no banco de dados mestre . Contém uma linha para cada mapeamento de logon remoto. Isso é usado para mapear logons que dizem estar vindo de um servidor correspondente para um logon local real. |
sys.syslnklgns | Existe somente no banco de dados mestre . Contém uma linha para cada mapeamento de logon vinculado. Mapeamentos de logon vinculados são usados por chamadas remotas de procedimento e consultas distribuídas que vão de um servidor local para um servidor vinculado correspondente. |
sys.sysxlgns | Existe somente no banco de dados mestre . Contém uma linha para cada principal de servidor. |
sys.sysdbfiles | Existe em todos os bancos de dados. Se a coluna dbid for zero, a linha representará um arquivo que pertence a esse banco de dados. No banco de dados mestre, a coluna dbid pode ser diferente de zero. Quando esse for o caso, a linha representa um arquivo mestre. |
sys.sysusermsg | Existe somente no banco de dados mestre . Cada linha representa uma mensagem de erro definida pelo usuário. |
sys.sysprivs | Existe em todos os bancos de dados. Contém uma linha para cada banco de dados - ou permissão em nível do servidor. Nota: As permissões no nível do servidor são armazenadas no banco de dados mestre . |
sys.sysowners | Existe em todos os bancos de dados. Cada linha representa um principal de banco de dados. |
sys.sysobjkeycrypts | Existe em todos os bancos de dados. Contém uma linha para cada chave simétrica, criptografia ou propriedade criptográfica associada a um objeto. |
sys.syscerts | Existe em todos os bancos de dados. Contém uma linha para cada certificado em um banco de dados. |
sys.sysasymkeys | Existe em todos os bancos de dados. Cada linha representa uma chave assimétrica. |
sys.ftinds | Existe em todos os bancos de dados. Contém uma linha para cada índice de texto completo no banco de dados. |
sys.sysxprops | Existe em todos os bancos de dados. Contém uma linha para cada propriedade estendida. |
sys.sysallocunits | Existe em todos os bancos de dados. Contém uma linha para cada unidade de alocação de armazenamento. |
sys.sysrowsets | Existe em todos os bancos de dados. Contém uma linha para cada conjunto de linhas de partição para um índice ou um heap. |
sys.sysrowsetrefs | Existe em todos os bancos de dados. Contém uma linha para cada índice para referência de conjunto de linhas. |
sys.syslogshippers | Existe somente no banco de dados mestre . Contém uma linha para cada banco de dados de testemunha espelhada. |
sys.sysremsvcbinds | Existe em todos os bancos de dados. Contém uma linha para cada associação de serviço remoto. |
sys.sysconvgroup | Existe em todos os bancos de dados. Contém uma linha para cada instância de serviço no Service Broker. |
sys.sysxmitqueue | Existe em todos os bancos de dados. Contém uma linha para cada fila de transmissão do Service Broker. |
sys.sysdesend | Existe em todos os bancos de dados. Contém uma linha para cada ponto de extremidade de envio de uma conversa do Service Broker. |
sys.sysdercv | Existe em todos os bancos de dados. Contém uma linha para cada ponto de extremidade de recebimento de uma conversa do Service Broker. |
sys.sysendpts | Existe somente no banco de dados mestre . Contém uma linha para cada ponto de extremidade criado no servidor. |
sys.syswebmétodos | Existe somente no banco de dados mestre . Contém uma linha para cada método SOAP definido em um ponto de extremidade HTTP habilitado por SOAP criado no servidor. |
sys.sysqnames | Existe em todos os bancos de dados. Contém uma linha para cada namespace ou nome qualificado para um token de ID de 4 bytes. |
sys.sysxmlcomponente | Existe em todos os bancos de dados. Cada linha representa um componente de esquema XML. |
sys.sysxmlfacet | Existe em todos os bancos de dados. Contém uma linha para cada faceta XML (restrição) de definição de tipo XML. |
sys.sysxmlplacement | Existe em todos os bancos de dados. Contém uma linha para cada colocação XML de componentes XML. |
sys.syssingleobjrefs | Existe em todos os bancos de dados. Contém uma linha para cada referência geral N-a-1. |
sys.sysmultiobjrefs | Existe em todos os bancos de dados. Contém uma linha para cada referência geral N-a-N. |
sys.sysobjvalues | Existe em todos os bancos de dados. Contém uma linha para cada propriedade de valor geral de uma entidade. |
sys.sysguidrefs | Existe em todos os bancos de dados. Contém uma linha para cada referência de ID classificada por GUID. |
Atualizando tabelas base do sistema
Veja os dados nas tabelas do sistema por meio das exibições do catálogo do sistema. Para atualizar os metadados em uma tabela base do sistema, use a interface Transact-SQL apropriada (por exemplo, instruções DDL). Não é possível atualizar manualmente as tabelas do sistema. O SQL Server relata as seguintes mensagens quando você executa atualizações diretas em tabelas do sistema.
Uma tabela do sistema é atualizada manualmente
Mensagem 17659: Aviso: A ID da tabela <do sistema foi atualizada diretamente na ID da ID><> do banco de dados e a coerência do cache pode não ter sido mantida. O SQL Server deve ser reiniciado.
Iniciando um banco de dados com uma tabela do sistema que foi atualizada manualmente
Msg 3859: Aviso: O catálogo do sistema foi atualizado diretamente no ID do banco de dados 17, mais recentemente no date_time.
Executando o comando DBCC_CHECKDB depois que uma tabela do sistema é atualizada manualmente
Msg 3859: Aviso: O catálogo do sistema foi atualizado diretamente no ID do banco de dados 17, mais recentemente no date_time.
Se você executar atualizações manuais em uma tabela do sistema e encontrar um problema, talvez seja solicitado que você restaure de um backup ou copie os dados do banco de dados afetado para um novo banco de dados. Saiba mais sobre as mensagens de erro de ação do usuário.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de