FIX: Query SELECT in modo imprevisto restituirà un numero non corretto di righe in SQL Server 2005 Mobile Edition e in SQL Server 2005 Compact Edition

Traduzione articoli Traduzione articoli
Identificativo articolo: 933697 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue una query di selezione in Microsoft SQL Server 2005 Mobile Edition e in Microsoft SQL Server 2005 Compact Edition, la query restituisce in modo imprevisto di un numero di righe non corretto. Questo problema si verifica se le seguenti condizioni sono vere:
  • La query SELECT contiene un inner join.
  • Una delle due tabelle che fanno parte dispone un indice nella colonna di join. L'altri tabella non dispone di alcun indice su una delle relative colonne.
Ad esempio, è possibile eseguire la query riportata di seguito in SQL Server 2005 Mobile Edition:
select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
Nota In questo esempio, la tabella T1 ha indice nella colonna colonna tabella T2 non dispone di un indice sulla colonna Col1.

Cause

Questo problema si verifica perché query optimizer non eliminare il piano precedente completamente. Prima di query optimizer opta per il piano migliore per eseguire una query, query optimizer considera più piani di query. In alcuni casi, è possibile che query optimizer di trovare un piano che utilizza un indice per valutare la condizione. Tuttavia, in query optimizer in seguito potrebbe essere un migliore piano. In questo caso, query optimizer Elimina piano precedente per utilizzare il piano migliore.

Risoluzione

Per risolvere il problema, utilizzare uno dei seguenti metodi:
  • Creare un indice nella colonna join nella seconda tabella.
  • Eliminare l'indice della colonna join nella prima tabella.
Nota Nell'esempio nella sezione "Sintomi", la colonna join nella seconda tabella è T2.Col1. La colonna join nella prima tabella è T1.Col.

Status

Microsoft ha confermato che questo un bug nei prodotti sono elencati nella sezione "Si applica a".

Informazioni

Procedura per riprodurre il problema

  1. Eseguire le seguenti istruzioni in un database in SQL Server 2005 Mobile Edition:
    CREATE TABLE T1 (COL INT);
    GO;
    CREATE INDEX T1_IDX ON T1 (COL);
    GO;
    INSERT INTO T1 VALUES (1);
    INSERT INTO T1 VALUES (2);
    INSERT INTO T1 VALUES (3);
    GO;
    CREATE TABLE T2 (COL1 INT, COL2 INT);
    GO;
    INSERT INTO T2 VALUES (1,1);
    INSERT INTO T2 VALUES (2,2);
    INSERT INTO T2 VALUES (3,3);
    GO;
  2. Eseguire la seguente istruzione:
    select * from T1, T2 where T1.Col = T2.Col1 order by T1.Col
    si verifica il problema descritto nella sezione "Sintomi".

Proprietà

Identificativo articolo: 933697 - Ultima modifica: martedì 13 marzo 2007 - Revisione: 1.2
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Mobile Edition
  • Microsoft SQL Server 2005 Compact Edition
Chiavi: 
kbmt kbtshoot kbexpertiseadvanced kbbug KB933697 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: 933697
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