DBCC CHECKTABLE (Transact-SQL)DBCC CHECKTABLE (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Verifica a integridade de todas as páginas e estruturas que compõem a tabela ou a exibição indexada.Checks the integrity of all the pages and structures that make up the table or indexed view.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

DBCC CHECKTABLE     
(    
    table_name | view_name    
    [ , { NOINDEX | index_id }    
     |, { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD }     
    ]     
)    
    [ WITH     
        { [ ALL_ERRORMSGS ]    
          [ , EXTENDED_LOGICAL_CHECKS ]     
          [ , NO_INFOMSGS ]    
          [ , TABLOCK ]     
          [ , ESTIMATEONLY ]     
          [ , { PHYSICAL_ONLY | DATA_PURITY } ]     
          [ , MAXDOP = number_of_processors ]    
        }    
    ]    

ArgumentosArguments

table_name | view_nametable_name | view_name
É a tabela ou exibição indexada para a qual executar verificações de integridade.Is the table or indexed view for which to run integrity checks. Os nomes de tabela ou de exibição precisam estar em conformidade com as regras para identificadores.Table or view names must comply with the rules for identifiers.

NOINDEXNOINDEX
Especifica que não devem ser executadas verificações intensivas de índices não clusterizados de tabelas de usuário.Specifies that intensive checks of nonclustered indexes for user tables should not be performed. Isto reduz o tempo de execução geral.This decreases the overall execution time. NOINDEX não afeta tabelas do sistema porque as verificações de integridade sempre são executadas em todos os índices de tabela do sistema.NOINDEX does not affect system tables because the integrity checks are always performed on all system table indexes.

index_idindex_id
É o número da ID (identificação) do índice para o qual executar verificações de integridade.Is the index identification (ID) number for which to run integrity checks. Se index_id for especificado, o DBCC CHECKTABLE executará verificações de integridade somente naquele índice, juntamente com o índice de heap ou clusterizado.If index_id is specified, DBCC CHECKTABLE runs integrity checks only on that index, together with the heap or clustered index.

REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILDREPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
Especifica que DBCC CHECKTABLE repara os erros encontrados.Specifies that DBCC CHECKTABLE repair the found errors. Para usar uma opção de reparo, o banco de dados deve estar em modo de usuário único.To use a repair option, the database must be in single-user mode.

REPAIR_ALLOW_DATA_LOSSREPAIR_ALLOW_DATA_LOSS
Tenta reparar todos os erros relatados.Tries to repair all reported errors. Esses reparos podem provocar alguma perda de dados.These repairs can cause some data loss.

REPAIR_FASTREPAIR_FAST
A sintaxe é mantida apenas para compatibilidade com versões anteriores.Syntax is maintained for backward compatibility only. Nenhuma ação de reparo é executada.No repair actions are performed.

REPAIR_REBUILDREPAIR_REBUILD
Executa reparos que não têm nenhuma possibilidade de perda de dados.Performs repairs that have no possibility of data loss. Isso pode incluir reparos rápidos, como reparo de linhas perdidas em índices não clusterizados e reparos mais demorados, como a recriação de um índice.This can include quick repairs, such as repairing missing rows in nonclustered indexes, and more time-consuming repairs, such as rebuilding an index.
Esse argumento não repara erros que envolvem dados de FILESTREAM.This argument does not repair errors involving FILESTREAM data.

Observação

Use as opções REPAIR apenas como um último recurso.Use the REPAIR options only as a last resort. Para reparar erros, recomendamos restaurar de um backup.To repair errors, we recommend restoring from a backup. Operações de reparo não consideram nenhuma das restrições que podem existir em tabelas ou entre tabelas.Repair operations do not consider any of the constraints that may exist on or between tables. Se a tabela especificada estiver envolvida em uma ou mais restrições, recomendamos a execução de DBCC CHECKCONSTRAINTS após uma operação de reparo.If the specified table is involved in one or more constraints, we recommend running DBCC CHECKCONSTRAINTS after a repair operation. Se for necessário usar REPAIR, execute DBCC CHECKTABLE sem uma opção de reparo para localizar o nível de reparo a ser usado.If you must use REPAIR, run DBCC CHECKTABLE without a repair option to find the repair level to use. Se você pretende usar o nível REPAIR_ALLOW_DATA_LOSS, recomendamos que você faça backup do banco de dados antes de executar DBCC CHECKTABLE com essa opção.If you are going to use the REPAIR_ALLOW_DATA_LOSS level, we recommend that you back up the database before you run DBCC CHECKTABLE with this option.

ALL_ERRORMSGSALL_ERRORMSGS
Exibe um número ilimitado de erros.Displays an unlimited number of errors. Todas as mensagens de erro são exibidas por padrão.All error messages are displayed by default. Especificar ou omitir esta opção não têm nenhum efeito.Specifying or omitting this option has no effect.

EXTENDED_LOGICAL_CHECKSEXTENDED_LOGICAL_CHECKS
Se o nível de compatibilidade é 100 (SQL Server 2008SQL Server 2008) ou superior, executa verificações de consistência lógica em uma exibição indexada, índices XML e índices espaciais, quando presentes.If the compatibility level is 100 ( SQL Server 2008SQL Server 2008) or higher, performs logical consistency checks on an indexed view, XML indexes, and spatial indexes, where present.
Para obter mais informações, confira Executando verificações de consistência lógica em índices na seção Comentários mais adiante neste tópico.For more information, see Performing Logical Consistency Checks on Indexes in the Remarks section later in this topic.

NO_INFOMSGSNO_INFOMSGS
Suprime todas as mensagens informativas.Suppresses all informational messages.

TABLOCKTABLOCK
Faz com que DBCC CHECKTABLE obtenha um bloqueio de tabela compartilhada em vez de usar um instantâneo do banco de dados interno.Causes DBCC CHECKTABLE to obtain a shared table lock instead of using an internal database snapshot. TABLOCK faz com que DBCC CHECKTABLE seja executado com mais rapidez em uma tabela sob carga pesada, mas reduz a simultaneidade disponível na tabela durante a execução de DBCC CHECKTABLE.TABLOCK will cause DBCC CHECKTABLE to run faster on a table under heavy load, but decreases the concurrency available on the table while DBCC CHECKTABLE is running.

ESTIMATEONLYESTIMATEONLY
Exibe a quantidade estimada de espaço do tempdb necessária para executar DBCC CHECKTABLE com todas as outras opções especificadas.Displays the estimated amount of tempdb space needed to run DBCC CHECKTABLE with all the other specified options.

PHYSICAL_ONLYPHYSICAL_ONLY
Limita a verificação à integridade da estrutura física da página, dos cabeçalhos de registros e da estrutura física de árvores B.Limits the checking to the integrity of the physical structure of the page, record headers and the physical structure of B-trees. Criada para fornecer uma pequena verificação de sobrecarga da consistência física da tabela, essa verificação também pode detectar páginas interrompidas e falhas comuns de hardware que podem comprometer os dados.Designed to provide a small overhead check of the physical consistency of the table, this check can also detect torn pages, and common hardware failures that can compromise data. Uma execução completa de DBCC CHECKTABLE pode demorar muito mais em versões anteriores.A full run of DBCC CHECKTABLE may take considerably longer than in earlier versions. Esse comportamento ocorre devido às seguintes razões:This behavior occurs because of the following reasons:

  • As verificações lógicas são mais abrangentes.The logical checks are more comprehensive.
  • Algumas das estruturas subjacentes a serem verificadas são mais complexas.Some of the underlying structures to be checked are more complex.
  • Foram introduzidas muitas verificações novas para incluir os novos recursos.Many new checks have been introduced to include the new features.

O uso da opção PHYSICAL_ONLY pode provocar um tempo de execução muito mais curto para DBCC CHECKTABLE em tabelas grandes. Portanto é recomendado para uso frequente em sistemas de produção.Therefore, using the PHYSICAL_ONLY option may cause a much shorter run-time for DBCC CHECKTABLE on large tables and is therefore recommended for frequent use on production systems. Ainda é recomendável executar um DBCC CHECKTABLE completo periodicamente.We still recommend that a full run of DBCC CHECKTABLE be performed periodically. A frequência dessas execuções depende de fatores específicos aos negócios e ambientes de produção individuais.The frequency of these runs depends on factors specific to individual businesses and production environments. PHYSICAL_ONLY sempre implica em NO_INFOMSGS e não é permitido com nenhuma das opções de reparo.PHYSICAL_ONLY always implies NO_INFOMSGS and is not allowed with any one of the repair options.

Observação

A especificação de PHYSICAL_ONLY faz com que DBCC CHECKTABLE ignore todas as verificações de dados FILESTREAM.Specifying PHYSICAL_ONLY causes DBCC CHECKTABLE to skip all checks of FILESTREAM data.

DATA_PURITYDATA_PURITY
Faz com que o DBCC CHECKTABLE verifique valores de colunas na tabela que não são válidos ou estão fora do intervalo.Causes DBCC CHECKTABLE to check the table for column values that are not valid or out-of-range. Por exemplo, o DBCC CHECKDB detecta colunas com valores de data e hora que são maiores ou menores do que o intervalo aceitável para o tipo de dados datetime ou decimal ou colunas de tipo de dados numérico aproximado com valores de escala ou de precisão que não são válidos.For example, DBCC CHECKTABLE detects columns with date and time values that are larger than or less than the acceptable range for the datetime data type; or decimal or approximate-numeric data type columns with scale or precision values that are not valid.
Verificações de integridade de valor de coluna são habilitadas por padrão e não exigem a opção DATA_PURITY.Column-value integrity checks are enabled by default and do not require the DATA_PURITY option. Para bancos de dados atualizados de versões anteriores do SQL ServerSQL Server, é possível usar DBCC CHECKTABLE WITH DATA_PURITY para localizar e corrigir erros em uma tabela específica. No entanto verificações de valores de colunas na tabela não são habilitadas por padrão até que o DBCC CHECKDB WITH DATA_PURITY tenha sido executado sem erros no banco de dados.For databases upgraded from earlier versions of SQL ServerSQL Server, you can use DBCC CHECKTABLE WITH DATA_PURITY to find and correct errors on a specific table; however, column-value checks on the table are not enabled by default until DBCC CHECKDB WITH DATA_PURITY has been run error free on the database. Depois disto, por padrão, DBCC CHECKDB e DBCC CHECKTABLE verificam a integridade de valores de colunas.After this, DBCC CHECKDB and DBCC CHECKTABLE check column-value integrity by default.
Erros de validação relatados por essa opção não podem ser corrigidos usando opções de reparo de DBCC.Validation errors reported by this option cannot be fixed by using DBCC repair options. Para obter informações sobre como corrigir esses erros manualmente, confira o artigo 923247 da Base de Dados de Conhecimento: Solução de problemas do erro 2570 do DBCC no SQL Server 2005 e versões posteriores.For information about manually correcting these errors, see Knowledge Base article 923247: Troubleshooting DBCC error 2570 in SQL Server 2005 and later versions.
Se PHYSICAL_ONLY estiver especificado, não serão executadas verificações de integridade de colunas.If PHYSICAL_ONLY is specified, column-integrity checks are not performed.

MAXDOPMAXDOP
Aplica-se ao: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 ao SQL Server 2017SQL Server 2017).Applies to: SQL ServerSQL Server (Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 through SQL Server 2017SQL Server 2017).

Substitui a opção de configuração max degree of parallelism de sp_configure da instrução.Overrides the max degree of parallelism configuration option of sp_configure for the statement. O MAXDOP pode exceder o valor configurado com sp_configure.The MAXDOP can exceed the value configured with sp_configure. Se MAXDOP exceder o valor configurado com o Resource Governor, o Mecanismo de Banco de Dados usará o valor de MAXDOP do Resource Governor, descrito em ALTER WORKLOAD GROUP (Transact-SQL).If MAXDOP exceeds the value configured with Resource Governor, the Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP (Transact-SQL). Todas as regras semânticas usadas com a opção de configuração grau máximo de paralelismo são aplicáveis ao usar a dica de consulta MAXDOP.All semantic rules used with the max degree of parallelism configuration option are applicable when you use the MAXDOP query hint. Para obter mais informações, veja Configurar a opção max degree of parallelism de configuração de servidor.For more information, see Configure the max degree of parallelism Server Configuration Option.

Observação

Se MAXDOP estiver definido como 0, o servidor escolherá o max degree of parallelism.If MAXDOP is set to zero then the server chooses the max degree of parallelism.

RemarksRemarks

Observação

Para executar DBCC CHECKTABLE em cada tabela no banco de dados, use DBCC CHECKDB.To perform DBCC CHECKTABLE on every table in the database, use DBCC CHECKDB.

Para a tabela especificada, DBCC CHECKTABLE verifica o seguinte:For the specified table, DBCC CHECKTABLE checks for the following:

  • Páginas de dados de estouro de linha, índice, em linha e LOB estão vinculadas corretamente.Index, in-row, LOB, and row-overflow data pages are correctly linked.
  • Os índices estão na ordem de classificação correta.Indexes are in their correct sort order.
  • Os ponteiros são consistentes.Pointers are consistent.
  • Os dados em cada página são razoáveis, inclusive colunas computadas.The data on each page is reasonable, included computed columns.
  • Deslocamentos de página são razoáveis.Page offsets are reasonable.
  • Cada linha da tabela base tem uma linha correspondente em cada índice não clusterizado e vice-versa.Every row in the base table has a matching row in each nonclustered index, and vice-versa.
  • Cada linha de um índice ou tabela particionada está na partição correta.Every row in a partitioned table or index is in the correct partition.
  • A consistência no nível do link entre o sistema de arquivos e a tabela ao armazenar dados varbinary(max) no sistema de arquivos usando FILESTREAM.Link-level consistency between the file system and table when storing varbinary(max) data in the file system using FILESTREAM.

Executando verificações de consistência lógica em índicesPerforming Logical Consistency Checks on Indexes

A verificação de consistência lógica em índices varia de acordo com o nível de compatibilidade do banco de dados, da seguinte maneira:Logical consistency checking on indexes varies according to the compatibility level of the database, as follows:

  • Se o nível de compatibilidade for 100 (SQL Server 2008SQL Server 2008) ou superior:If the compatibility level is 100 (SQL Server 2008SQL Server 2008) or higher:

    • A menos que NOINDEX esteja especificado, DBCC CHECKTABLE executará verificações de consistência física e lógica em uma única tabela e em todos os índices não clusterizados.Unless NOINDEX is specified, DBCC CHECKTABLE performs both physical and logical consistency checks on a single table and on all its nonclustered indexes. Entretanto, em índices XML, índices espaciais e exibições indexadas, por padrão são executadas somente as verificações de consistência física.However, on XML indexes, spatial indexes, and indexed views only physical consistency checks are performed by default.
    • Se WITH EXTENDED_LOGICAL_CHECKS estiver especificado, verificações lógicas serão executadas em uma exibição indexada, em índices XML e em índices espaciais, quando presentes.If WITH EXTENDED_LOGICAL_CHECKS is specified, logical checks are performed on an indexed view, XML indexes, and spatial indexes, where present. Por padrão, as verificações de consistência física são executadas antes das verificações de consistência lógica.By default, physical consistency checks are performed before the logical consistency checks. Se NOINDEX também estiver especificado, apenas as verificações lógicas serão executadas.If NOINDEX is also specified, only the logical checks are performed.
      Essas verificações de consistência lógica comparam a tabela de índice interna do objeto de índice com a tabela do usuário à qual se está fazendo referência.These logical consistency checks cross check the internal index table of the index object with the user table that it is referencing. Para localizar linhas externas, uma consulta interna é construída para executar uma interseção completa das tabelas internas e do usuário.To find outlying rows, an internal query is constructed to perform a full intersection of the internal and user tables. A execução dessa consulta pode afetar bastante o desempenho e não é possível controlar seu andamento.Running this query can have a very high effect on performance, and its progress cannot be tracked. Portanto, recomendamos especificar WITH EXTENDED_LOGICAL_CHECKS apenas se você suspeitar de problemas de índice que não estão relacionados à dano físico ou se as somas de verificação em nível de página foram desativadas e você suspeitar de dano de hardware em nível de coluna.Therefore, we recommend that you specify WITH EXTENDED_LOGICAL_CHECKS only if you suspect index issues that are unrelated to physical corruption, or if page-level checksums have been turned off and you suspect column-level hardware corruption.
    • Se o índice for filtrado, DBCC CHECKDB executará verificações de consistência para verificar se as entradas do índice atendem ao predicado do filtro.If the index is a filtered index, DBCC CHECKDB performs consistency checks to verify that the index entries satisfy the filter predicate.
  • Começando com o SQL Server 2016 (13.x)SQL Server 2016 (13.x), as verificações adicionais em colunas computadas persistentes, em colunas de UDT e em índices filtrados não serão executadas por padrão, para evitar as avaliações de expressão caras.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), additional checks on persisted computed columns, UDT columns, and filtered indexes will not run by default to avoid the expensive expression evaluations. Essa alteração reduz significativamente a duração de CHECKDB em bancos de dados que contêm esses objetos.This change greatly reduces the duration of CHECKDB against databases containing these objects. No entanto, as verificações de consistência física desses objetos sempre são concluídas.However, the physical consistency checks of these objects is always completed. Somente quando a opção EXTENDED_LOGICAL_CHECKS for especificada as avaliações de expressão serão executadas além das verificações lógicas já presentes (exibição indexada, índices XML e índices espaciais) como parte da opção EXTENDED_LOGICAL_CHECKS.Only when EXTENDED_LOGICAL_CHECKS option is specified will the expression evaluations be performed in addition to already present logical checks (indexed view, XML indexes, and spatial indexes) as part of the EXTENDED_LOGICAL_CHECKS option.

  • Se o nível de compatibilidade for 90 (SQL Server 2005 (9.x)SQL Server 2005 (9.x)) ou inferior, a menos que NOINDEX esteja especificado, DBCC CHECKTABLE executará verificações de consistência física e lógica em uma única tabela ou exibição indexada e em todos os índices XML e não clusterizados.If the compatibility level is 90 (SQL Server 2005 (9.x)SQL Server 2005 (9.x)) or less, unless NOINDEX is specified, DBCC CHECKTABLE performs both physical and logical consistency checks on a single table or indexed view and on all its nonclustered and XML indexes. Não há suporte para índices espaciais.Spatial indexes are not supported.

Para saber o nível de compatibilidade de um banco de dados To learn the compatibility level of a database
Exibir ou alterar o nível de compatibilidade de um banco de dadosView or Change the Compatibility Level of a Database

Instantâneo de banco de dados internoInternal Database Snapshot

DBCC CHECKTABLE usa um instantâneo do banco de dados interno para fornecer a consistência transacional necessária ao executar essas verificações.DBCC CHECKTABLE uses an internal database snapshot to provide the transactional consistency that it must have to perform these checks. Para obter mais informações, confira Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL) e a seção "Uso de instantâneo de banco de dados interno do DBCC" em DBCC (Transact-SQL).For more information, see View the Size of the Sparse File of a Database Snapshot (Transact-SQL) and the "DBCC Internal Database Snapshot Usage" section in DBCC (Transact-SQL). Se um instantâneo não puder ser criado, ou se a opção TABLOCK estiver especificada, DBCC CHECKTABLE irá adquirir um bloqueio de tabela compartilhada para obter a consistência necessária.If a snapshot cannot be created, or TABLOCK is specified, DBCC CHECKTABLE acquires a shared table lock to obtain the required consistency.

Observação

Se DBCC CHECKTABLE for executado no tempdb, ele precisará adquirir um bloqueio de tabela compartilhada.If DBCC CHECKTABLE is run against tempdb, it must acquire a shared table lock. Isso porque, por razões de desempenho, instantâneos do banco de dados não estão disponíveis em tempdb.This is because, for performance reasons, database snapshots are not available on tempdb. Isso significa que não é possível obter a consistência transacional exigida.This means that the required transactional consistency cannot be obtained.

Verificando e reparando dados FILESTREAMChecking and Repairing FILESTREAM Data

Quando FILESTREAM está habilitado para um banco de dados e uma tabela, é possível armazenar opcionalmente BLOBs (objetos binários grandes) varbinary(max) no sistema de arquivos.When FILESTREAM is enabled for a database and table, you can optionally store varbinary(max) binary large objects (BLOBs) in the file system. Ao usar DBCC CHECKTABLE em uma tabela que armazena BLOBs no sistema de arquivos, DBCC verifica a consistência em nível de vinculação entre o sistema de arquivos e o banco de dados.When using DBCC CHECKTABLE on a table that stores BLOBs in the file system, DBCC checks link-level consistency between the file system and database. Por exemplo, se uma tabela contiver uma coluna varbinary(max) que use o atributo FILESTREAM, o DBCC CHECKDB verificará se existe um mapeamento de um-para-um entre os diretórios e os arquivos do sistema de arquivos e entre as linhas e as colunas da tabela e os valores das colunas.For example, if a table contains a varbinary(max) column that uses the FILESTREAM attribute, DBCC CHECKTABLE will check that there is a one-to-one mapping between file system directories and files and table rows, columns, and column values. DBCC CHECKTABLE poderá reparar dano se você especificar a opção REPAIR_ALLOW_DATA_LOSS.DBCC CHECKTABLE can repair corruption if you specify the REPAIR_ALLOW_DATA_LOSS option. Para reparar danos de FILESTREAM, o DBCC excluirá todas as linhas da tabela que não têm dados do sistema de arquivos e excluirá todos os diretórios e arquivos que não são mapeados para uma linha de tabela, coluna ou valor de coluna.To repair FILESTREAM corruption, DBCC will delete any table rows that are missing file system data and will delete any directories and files that do not map to a table row, column, or column value.

Verificando objetos em paraleloChecking Objects in Parallel

Por padrão, DBCC CHECKTABLE executa a verificação paralela de objetos.By default, DBCC CHECKTABLE performs parallel checking of objects. O grau de paralelismo é automaticamente determinado pelo processador de consulta.The degree of parallelism is automatically determined by the query processor. O grau máximo de paralelismo é configurado da mesma maneira como o de consultas paralelas.The maximum degree of parallelism is configured in the same manner as that of parallel queries. Para restringir o número máximo de processadores disponíveis para a verificação do DBCC, use sp_configure.To restrict the maximum number of processors available for DBCC checking, use sp_configure. Para obter mais informações, veja Configurar a opção max degree of parallelism de configuração de servidor.For more information, see Configure the max degree of parallelism Server Configuration Option. A verificação paralela pode ser desabilitada usando o sinalizador de rastreamento 2528.Parallel checking can be disabled by using trace flag 2528. Para obter mais informações, veja, Sinalizadores de rastreamento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

Observação

Durante uma operação de DBCC CHECKTABLE, os bytes armazenados em uma coluna de tipo definido pelo usuário, ordenada por byte, devem ser iguais aos da serialização computada do valor do tipo definido pelo usuário.During a DBCC CHECKTABLE operation, the bytes that are stored in a byte-ordered user-defined type column must be equal to the computed serialization of the user-defined type value. Se isto não for verdadeiro, a rotina de DBCC CHECKTABLE relatará um erro de consistência.If this is not true, the DBCC CHECKTABLE routine will report a consistency error.

Compreendendo mensagens de erro DBCCUnderstanding DBCC Error Messages

Depois que o comando DBCC CHECKTABLE é concluído, uma mensagem é gravada no log de erros do SQL ServerSQL Server.After the DBCC CHECKTABLE command finishes, a message is written to the SQL ServerSQL Server error log. Se o comando DBCC for executado com êxito, a mensagem indicará uma conclusão bem-sucedida e o tempo de execução do comando.If the DBCC command successfully executes, the message indicates a successful completion and the amount of time that the command ran. Se o comando DBCC parar antes de concluir a verificação devido a um erro, a mensagem indicará que o comando foi finalizado, um valor de estado e a duração da execução do comando.If the DBCC command stops before completing the check because of an error, the message indicates the command was terminated, a state value, and the amount of time the command ran. A tabela a seguir lista e descreve os valores de estado que podem ser incluídos na mensagem.The following table lists and describes the state values that can be included in the message.

EstadoState DescriçãoDescription
00 O número do erro 8930 foi gerado.Error number 8930 was raised. Isso indica um dano de metadados que provocou a finalização do comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
11 O erro número 8967 foi gerado.Error number 8967 was raised. Ocorreu um erro interno de DBCC.There was an internal DBCC error.
22 Ocorreu uma falha durante o reparo do banco de dados em modo de emergência.A failure occurred during emergency mode database repair.
33 Isso indica um dano de metadados que provocou a finalização do comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
44 Uma declaração ou violação de acesso foi detectada.An assert or access violation was detected.
55 Ocorreu um erro desconhecido que finalizou o comando DBCC.An unknown error occurred that terminated the DBCC command.

Relatório de ErrosError Reporting

Um arquivo de minidespejo (SQLDUMP*nnnn*.txt) é criado no diretório de LOG SQL ServerSQL Server sempre que DBCC CHECKTABLE detecta um erro de currupção.A mini-dump file (SQLDUMP*nnnn*.txt) is created in the SQL ServerSQL Server LOG directory whenever DBCC CHECKTABLE detects a corruption error. Quando a coleta de dados Uso de Recursos e os recursos de Relatório de Erros recursos estão habilitados para a instância do SQL ServerSQL Server, o arquivo é encaminhado automaticamente ao MicrosoftMicrosoft.When the Feature Usage data collection and Error Reporting features are enabled for the instance of SQL ServerSQL Server, the file is automatically forwarded to MicrosoftMicrosoft. Os dados coletados são usados para aprimorar a funcionalidade do SQL ServerSQL Server.The collected data is used to improve SQL ServerSQL Server functionality. O arquivo de despejo contém os resultados do comando DBCC CHECKTABLE e saídas de diagnóstico adicionais.The dump file contains the results of the DBCC CHECKTABLE command and additional diagnostic output. O arquivo tem DACLs (listas de controle de acesso discricionário) restritas.The file has restricted discretionary access-control lists (DACLs). O acesso é limitado à conta de serviço do SQL ServerSQL Server e aos membros da função sysadmin.Access is limited to the SQL ServerSQL Server service account and members of the sysadmin role. Por padrão, a função sysadmin contém todos os membros do grupo BUILTIN\Administradores do Windows e do grupo do administrador local.By default, the sysadmin role contains all members of the Windows BUILTIN\Administrators group and the local administrator's group. O comando DBCC não falhará se o processo de coleta de dados falhar.The DBCC command does not fail if the data collection process fails.

Resolvendo errosResolving Errors

Se qualquer erro for relatado pelo DBCC CHECKTABLE, recomendamos a restauração do banco de dados do backup em vez da execução de REPAIR com uma das opções REPAIR.If DBCC CHECKTABLE reports any errors, we recommend restoring the database from the database backup instead of running REPAIR with one of the REPAIR options. Se não existir nenhum backup, a execução de REPARAR poderá corrigir os erros relatados.If no backup exists, running REPAIR can correct the errors that are reported. A opção REPAIR a ser usada é especificada no fim da lista de erros relatados.The REPAIR option to use is specified at the end of the list of reported errors. No entanto, a correção dos erros usando a opção REPAIR_ALLOW_DATA_LOSS pode exigir que algumas páginas e, portanto, dados, sejam excluídos.However, that correcting the errors by using the REPAIR_ALLOW_DATA_LOSS option might require that some pages, and therefore data, be deleted.
O reparo pode ser executado sob uma transação do usuário para permitir que o usuário reverta as alterações feitas.The repair can be performed under a user transaction to allow the user to roll back the changes that have been made. Se reparos forem revertidos, o banco de dados ainda conterá erros e deverá ser restaurado de um backup.If repairs are rolled back, the database will still contain errors and must be restored from a backup. Depois de concluir todos os reparos, faça backup do banco de dados.After you have completed all repairs, back up the database.

Conjuntos de resultadosResult Sets

O DBCC CHECKTABLE retorna o seguinte conjunto de resultados.DBCC CHECKTABLE returns the following result set. O mesmo conjunto de resultados será retornado se você especificar apenas o nome da tabela ou qualquer uma das opções.The same result set is returned if you specify only the table name or any of the options.

DBCC results for 'HumanResources.Employee'.    
There are 288 rows in 13 pages for object 'Employee'.    
DBCC execution completed. If DBCC printed error messages, contact your system administrator.    

O DBCC CHECKTABLE retornará o conjunto de resultados a seguir se a opção de ESTIMATEONLY for especificada:DBCC CHECKTABLE returns the following result set if the ESTIMATEONLY option is specified:

Estimated TEMPDB space needed for CHECKTABLES (KB)     
--------------------------------------------------     
21    
(1 row(s) affected)    
DBCC execution completed. If DBCC printed error messages, contact your system administrator.    

PermissõesPermissions

O usuário precisa ser o proprietário da tabela ou ser membro da função de servidor fixa sysadmin, da função de banco de dados fixa db_owner ou da função de banco de dados fixa db_ddladmin.User must own the table, or be a member of the sysadmin fixed server role, the db_owner fixed database role, or the db_ddladmin fixed database role.

ExemplosExamples

A.A. Verificando uma tabela específicaChecking a specific table

O exemplo a seguir verifica a integridade da página de dados da tabela HumanResources.Employee no banco de dados AdventureWorks2012AdventureWorks2012.The following example checks the data page integrity of the HumanResources.Employee table in the AdventureWorks2012AdventureWorks2012 database.

DBCC CHECKTABLE ('HumanResources.Employee');    
GO    

B.B. Executando uma verificação de sobrecarga baixa da tabelaPerforming a low-overhead check of the table

O exemplo a seguir executa uma verificação de sobrecarga baixa da tabela Employee no banco de dados AdventureWorks2012AdventureWorks2012.The following example performs a low overhead check of the Employee table in the AdventureWorks2012AdventureWorks2012 database.

DBCC CHECKTABLE ('HumanResources.Employee') WITH PHYSICAL_ONLY;    
GO    

C.C. Verificando um índice específicoChecking a specific index

O exemplo a seguir verifica um índice específico obtido por meio de acesso a sys.indexes.The following example checks a specific index, obtained by accessing sys.indexes.

DECLARE @indid int;    
SET @indid = (SELECT index_id     
              FROM sys.indexes    
              WHERE object_id = OBJECT_ID('Production.Product')    
                    AND name = 'AK_Product_Name');    
DBCC CHECKTABLE ('Production.Product',@indid);    

Consulte TambémSee Also

DBCC (Transact-SQL) DBCC (Transact-SQL)
DBCC CHECKDB (Transact-SQL)DBCC CHECKDB (Transact-SQL)