Entrar

CORRECÇÃO: Dividir 0 por um resulta de número negativo decimal ou numérico em - 0

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.

285544
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Erro nº: 203148 (SHILOH_bugs)
Sintomas
Ao usar tipos de dados decimal ou numérico, se você dividir 0 por um negativo número, um 0 negativo (- 0) é retornado.
Resolução
Para resolver esse problema, obtenha o service pack mais recente para o SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211INF: Como obter o Service Pack mais recente do SQL Server 2000
Como Contornar
Procurar 0 antes de executar a divisão e evitar a divisão se 0 é envolvida; por exemplo:
declare @v1 dec(10, 2), @v2 dec(2, 1), @v3 dec (10,2) -- @v3 is the result of @v1/@v2select @v1 = 0.0, @v2 = -1.0if @v1 = 0     select @v3 = 0.0else   select @v3 = @v1 / @v2				
Situação
A Microsoft confirmou que este é um problema no SQL Server 2000. Esse problema foi corrigido primeiro no SQL Server 2000 Service Pack 1.
Mais Informações
SQL Server não considera o valor calculado (- 0) igual a 0, então, a comparação do valor calculado (- 0) com falha 0. Por exemplo, o seguinte código
   declare @v1 dec(10, 2), @v2 dec(2, 1)   select @v1 = 0.0, @v2 = -1.0   if @v1 / @v2 = 0        print 'equals zero'   else      print 'not equal zero'				
fornece o seguinte resultado:
   not equal zero 				
Para obter informações adicionais sobre bugs relacionados no SQL Server 7.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
275608CORRECÇÃO: Operações matemáticos em decimal ou numérico colunas com números negativos podem retornar resultados inesperados

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 285544 - Última Revisão: 01/16/2015 21:25:22 - Revisão: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB285544 KbMtpt
Comentários