Oprava: Kurzorů straně server může vrátit nesprávné výsledky

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:286788
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Chyba #: 351513 (Shiloh_bugs)
CHYBA Č: 101092 (SQLBUG_70)
Příznaky
Kurzor straně dynamické nebo úsilím sady klíčů, server může vrátit nesprávné výsledky, pokud jsou splněny následující podmínky:
  • Dotaz používá Sub-SELECT příkaz jako seznam sloupců.
  • Sub-SELECT používá funkci COUNT(*).
  • Sub-SELECT má ANSI spojení s podmínku.
  • Vnější tabulka klauzuli FROM má Transact-SQL spojení s Sub-SELECT.
Řešení

SQL Server 2000

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
290211INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

SQL Server 7.0

Tento problém vyřešíte získat nejnovější aktualizaci service pack pro Microsoft SQL Server 7.0. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
301511INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 7.0
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku.

SQL Server 2000
Tento problém byl poprvé opraven v SQL Server 2000 Service Pack 1.

SQL Server 7.0
Tento problém byl poprvé opraven v Microsoft SQL Server 7.0 Service Pack 4.
Další informace
Problém reprodukovat, spusťte tento kód:
CREATE TABLE  TABLE1( T1COL1 int NOT NULL PRIMARY KEY)goCREATE TABLE  TABLE2( T2COL1 int NOT NULL PRIMARY KEY, T2COL2 int NOT NULL )goCREATE TABLE TABLE3(	T3COL1 int NOT NULL)goInsert into TABLE1(T1COL1) values(4)Insert into TABLE1(T1COL1) values(3)Insert into TABLE2(T2COL1, T2COL2) values(5, 3)Insert into TABLE2(T2COL1, T2COL2) values(6, 4)Insert into TABLE3(T3COL1) values(6)go-------------- REPRO SCRIPT (Correct result would be 0,1) -------------declare test cursor keyset for Select (select count(*)      from dbo.TABLE2 as T2 join dbo.TABLE3 as T3 on T3.T3COL1 = T2.T2COL1      where T2.T2COL2 = T1.T1COL1) as Para from dbo.TABLE1 as T1open testfetch testfetch testdeallocate test--------------- Workaround (Join condition moved to WHERE clause) ----------------declare test cursor keyset local for Select (select count(*)      from dbo.TABLE2 as T2, dbo.TABLE3 as T3       where T2.T2COL2 = T1.T1COL1 and T3.T3COL1 = T2.T2COL1) as Para       from dbo.TABLE1 as T1open testfetch testfetch testdeallocate test				
SSrvTran_SQL

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 286788 - Poslední kontrola: 01/16/2015 21:31:25 - Revize: 3.2

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB286788 KbMtcs
Váš názor