CORRECÇÃO: Mensagem de erro quando você executar a instrução DBCC CHECKTABLE ou a instrução DBCC CHECKDB no Microsoft SQL Server 2005: "o valor da coluna '<columnname>' está fora do intervalo para o tipo de dados 'float'"

Traduções deste artigo Traduções deste artigo
ID do artigo: 942904 - Exibir os produtos aos quais esse artigo se aplica.
Bug: # 50001847 (Hotfix do SQL)
A Microsoft distribui correções do Microsoft SQL Server 2005 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todos os as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

No Microsoft SQL Server 2005, quando você executa a instrução DBCC CHECKTABLE ou a instrução DBCC CHECKDB para executar uma verificação de consistência física em uma tabela, é exibida uma mensagem de erro semelhante a seguinte mensagem de erro:
Resultados do DBCC para '<tablename>'.
Msg 2570, nível 16, estado 3, linha 1 página (1:73), slot 2 no objeto identificação 2073058421, índice de ID 1, partição ID 72057594038321152, unidade de alocação identificação 72057594043301888 (tipo de "-linha dados"). Valor da coluna "<columnname>" está fora do intervalo para o tipo de dados "flutuante". Coluna de atualização para um valor válido.
Observação Nessa mensagem de erro, TableName representa o nome real da tabela e ColumnName representa o nome real da coluna.

Causa

Esse problema ocorre porque uma instrução INSERT ou uma instrução UPDATE passa valores que estão fora do intervalo em uma coluna que é uma coluna de tipo de dados FLOAT. Essa condição pode ocorrer se a instrução INSERT ou a instrução UPDATE não envia os valores que são inseridos ou que são atualizados como literais. Por exemplo, esse problema pode ocorrer se você usar uma variável para passar um valor inválido em uma instrução INSERT ou em uma instrução UPDATE .

Resolução

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 4. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2005 Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
941450Pacote de atualizações cumulativas 4 para SQL Server 2005 Service Pack 2
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança foram incluídas com o anterior SQL Server 2005 corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
937137Compilações do SQL Server 2005 lançados após o SQL Server 2005 Service Pack 2 foi lançado
Os hotfixes do Microsoft SQL Server 2005 são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por padrão, qualquer hotfix fornecidas em um SQL Server service pack está incluído no service pack seguinte do SQL Server.

Para mais informações sobre quais arquivos são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de atualização cumulativa que contém o hotfix descrito neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
941450Pacote de atualizações cumulativas 4 para SQL Server 2005 Service Pack 2

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Depois de aplicar esse hotfix, SQL Server não impede que você inserir valores inválidos em colunas que são colunas de tipo de dados FLOAT. Depois de aplicar esse hotfix, os valores inválidos não são indicados como erros na instrução DBCC CHECKTABLE ou na instrução DBCC CHECKDB .

Etapas para reproduzir o problema

  1. Abra o SQL Server Management Studio e conecte a uma instância do SQL Server 2005.
  2. Crie uma nova consulta e, em seguida, execute as seguintes instruções:
    create table tb1 (c float)
    go
    
    declare @f float
    set @f=1E-307*0.01
    insert tb1 values (@f)
    go
    select * from tb1
    go
    aviso que o seguinte valor inválido foi inserido na tabela:
    309 1E
  3. Execute as seguintes instruções:
    DBCC CHECKTABLE ('tb1')
    go
    que você recebe a mensagem de erro que descreve a seção "Sintomas".
  4. Execute as seguintes instruções:
    insert tb1 values (1E-309)
    go
    você recebe uma das seguintes mensagens, dependendo a compilação do SQL Server:

    mensagem 1
    Aviso: o flutuante aponte o valor '1e-309' é muito pequeno. Ele será interpretado como 0.
    mensagem 2
    Valor '1e-309' ponto o flutuante está fora do intervalo de representação do computador (8 bytes).
    Nesse caso, o valor inválido não é inserido na tabela porque enviar o valor como um literal.
  5. Execute as seguintes instruções para examinar o valor inserido na tabela na etapa 4:
    select * from tb1
    go
    aviso que 0 será inserida em vez do valor inválido.

Referências

Para obter mais informações sobre como solucionar problemas de erro DBCC 2750 (pureza de dados), clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
923247Solução de problemas erro DBCC 2570 no SQL Server 2005
Para obter mais informações sobre a lista de compilações disponibilizadas após o SQL Server Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
937137Compilações do SQL Server 2005 lançados após o SQL Server 2005 Service Pack 2 foi lançado
Para obter mais informações sobre o modelo incremental de serviços para o SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897Há um modelo incremental de serviços da equipe do SQL Server para fornecer hotfixes para problemas relatados
Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
913089Como obter o service pack mais recente para o SQL Server 2005
Para obter mais informações sobre os novos recursos e os aprimoramentos no SQL Server 2005 Service Pack 2, visite o seguinte site:
http://go.microsoft.com/fwlink/?LinkId=71711
Para obter mais informações sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 942904 - Última revisão: quarta-feira, 14 de novembro de 2007 - Revisão: 2.4
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Palavras-chave: 
kbmt kbsql2005engine kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced KB942904 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 942904

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com