FIX: Risultati non corretti con join della conversione al file binario di colonna

Traduzione articoli Traduzione articoli
Identificativo articolo: 282243 - Visualizza i prodotti a cui si riferisce l?articolo.
BUG #: 351225 (SHILOH_bugs)
BUG #: 100900 (SQLBUG_70)
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si utilizza un confronto senza distinzione tra maiuscole e minuscole, se una subquery correlata o join viene eseguita una colonna basata su caratteri che è stata convertita in binary o varbinary , e se query optimizer sceglie un piano che utilizza una corrispondenza di spooling o hash tabella con cache, potrebbe essere restituiti risultati non corretti. Le righe restituite sono le corrispondenze basate su un confronto senza distinzione tra maiuscole e minuscole, della colonna, anziché un confronto binario.

Cause

Su un server senza distinzione tra maiuscole e minuscole, le ricerche dalla cache di spooling o hash tabella vengono eseguite in modo distinzione tra maiuscole e minuscole invece di una ricerca binaria. Poiché la colonna è stata eseguire il cast un tipo binario , deve essere eseguita una ricerca binaria.

Risoluzione

SQL Server 2000

Per risolvere il problema, ottenere il service pack più recente per Microsoft 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

SQL Server 7.0

Per risolvere il problema, ottenere il service pack più recente per Microsoft SQL Server 7.0. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
301511INF: Come ottenere il Service Pack più recente per SQL Server 7.0
Nota : è stata creata la seguente correzione rapida prima di SQL Server 7.0 Service Pack 4.

La versione inglese di questa correzione deve essere di avere i seguenti attributi di file o versioni successive:
   Version      File name      Platform
   ----------------------------------------------------

   7.00.0919    s70919i.exe    x86        SP2-based fix
   7.00.0919    s70919a.exe    Alpha      SP2-based fix

   7.00.0970    s70970i.exe    x86        SP3-based fix
   7.00.0970    s70970a.exe    Alpha      SP3-based fix
				
Nota : causa delle dipendenze fra i file, la funzionalità che contiene i file precedenti o l'aggiornamento rapido (hotfix) più recente può contenere anche file aggiuntivi.

Status

Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo.

SQL Server 2000
Il problema è stato risolto nel Service Pack 1 per SQL Server 2000.

SQL Server 7.0
Questo problema è stato innanzitutto corretto in SQL Server 7.0 Service Pack 4.

Informazioni

Lo script seguente viene illustrato il problema. Prima di applicare la correzione, lo script restituisce due righe con un TestCode "a", anziché una riga con valore "a" e un secondo, con valore "A".
CREATE TABLE #tblIDs(TestID int, Code varchar(1))
CREATE TABLE #tblValues(Code varchar(1))

INSERT INTO #tblIDs(TestID, Code) VALUES(1,'a')
INSERT INTO #tblIDs(TestID, Code) VALUES(2,'A')

INSERT INTO #tblValues(Code) VALUES('a')
INSERT INTO #tblValues(Code) VALUES('A')

SELECT #tblValues.Code AS TestCode, 
   (SELECT #tblIDs.TestID FROM #tblIDs 
      WHERE CAST(#tblIDs.Code AS varbinary) = 
            CAST(#tblValues.Code AS varbinary)
    ) AS TestID 
FROM #tblValues

DROP TABLE #tblIDs
DROP TABLE #tblValues
GO
				

Proprietà

Identificativo articolo: 282243 - Ultima modifica: mercoledì 29 ottobre 2003 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Chiavi: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB282243 KbMtit
Traduzione automatica articoli
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: 282243
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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