FIX: Suddivisione 0 per un numero risultati negativo decimal o numeric in 0

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 285544
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
BUG #: 203148 (SHILOH_bugs)
Sintomi
Quando si utilizza tipi di dati decimal o numeric, se si divide 0 per un valore negativo numero, un 0 negativo (- 0) viene restituito.
Risoluzione
Per risolvere il problema, ottenere il service pack più recente per SQL Server 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
290211INF: Come ottenere il Service Pack più recente per SQL Server 2000
Workaround
Cercare 0 prima di eseguire la divisione e di evitare la divisione, se è coinvolto 0; ad esempio:
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				
Status
Microsoft ha confermato che questo problema riguarda SQL Server 2000. Il problema è stato risolto nel Service Pack 1 per SQL Server 2000.
Informazioni
SQL Server non prende in considerazione il valore calcolato (- 0) uguale a 0, pertanto il confronto tra il valore calcolato (- 0) con 0 ha esito negativo. Ad esempio, il seguente codice
   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'				
fornisce il seguente risultato:
   not equal zero 				
Per ulteriori informazioni sui bug correlati in SQL Server 7.0, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
275608FIX: Operazioni matematiche su numerico o decimale colonne con numeri negativi possono restituire risultati imprevisti

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 285544 - Ultima revisione: 01/16/2015 21:25:18 - Revisione: 3.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB285544 KbMtit
Feedback