Společnost Microsoft distribuuje Microsoft SQL Server 2008 opravy jako jeden soubor ke stažení. Protože jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 Oprava.
Příznaky
Zvažte následující scénář:
-
Spustíte paralelní dotaz používající funkci ROW_NUMBER v Microsoft SQL serveru 2008.
-
Pokusíte se spustit dotaz pomocí poddotazu, který je uvnitř příkazu Select nebo příkazu pro zpracování dat (DML).
V tomto scénáři se setkáte s jedním z následujících problémů:
-
Pokud dotaz spustíte v příkazu Select mnohokrát, zobrazí se nesprávné výsledky.
-
Tabulka může obsahovat nesprávná data, pokud je dotaz spuštěn uvnitř příkazu DML. Pokud má tabulka omezení, může to selhat s porušením omezení. Například příkaz INSERT může selhat a dojde k chybě narušení primárního klíče, pokud má tabulka primární klíč.
Poznámka K těmto problémům může dojít v následujících situacích:
-
MAXDOP je nastavena na hodnotu, která je větší než 2.
-
Nastavíte možnost Maximální stupeň paralelismu na hodnotu, která je větší než 2 v konfiguraci serveru.
Řešení
Tento problém vyřešíte pomocí nejnovější aktualizace Service Pack pro SQL Server 2008. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
968382 Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2008
Alternativní řešení
Jako alternativní řešení použijte jednu z následujících metod:
-
Pokud jste použili jednu z následujících aktualizací, povolte příznak trasování 4134:
-
Kumulativní balíček aktualizací 6 pro SQL Server 2008 nebo novější kumulativní balíček aktualizací pro SQL Server 2008
-
Kumulativní aktualizace 2 pro SQL Server 2008 Service Pack 1 (SP1) nebo novější kumulativní balíček aktualizací pro SQL Server 2008 SP1
Další informace o tom, jak povolit příznaky trasování, najdete na následujícím webu MSDN:
-
-
Odkázat na část řešení v článku 970198 znalostní báze Microsoft Knowledge Base. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
970198 Oprava: při spuštění dotazu používajícího funkci row_number v systému SQL Server 2008 se zobrazí nesprávný výsledek