Firma Microsoft rozpowszechnia poprawki w programie Microsoft SQL Server 2008 w postaci jednego pliku do pobrania. Ponieważ poprawki są kumulatywne, każdy nowy pakiet zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008.
Symptomy
Rozpatrzmy następujący scenariusz:
-
Uruchamiasz kwerendę równoległą, która korzysta z funkcji ROW_NUMBER w programie Microsoft SQL Server 2008.
-
Podjęto próbę uruchomienia zapytania przy użyciu podkwerendy znajdującej się w instrukcji SELECT lub instrukcji języka manipulacji danych (DML).
W tym scenariuszu występuje jedna z następujących problemów:
-
Jeśli kwerenda jest uruchamiana wielokrotnie w instrukcji SELECT , są wyświetlane niepoprawne wyniki.
-
Tabela może zawierać niepoprawne dane, jeśli kwerenda jest uruchamiana w instrukcji DML. Jeśli tabela zawiera ograniczenia, instrukcja może zakończyć się niepowodzeniem z naruszeniem ograniczeń. Na przykład instrukcja INSERT może się nie powieść, a jeśli tabela ma klucz podstawowy, występuje błąd naruszenia klucza podstawowego.
Uwaga Te problemy mogą wystąpić w jednej z następujących sytuacji:
-
Opcja wskazówki kwerendy MAXDOP jest ustawiana na wartość większą niż 2.
-
Dla opcji maks. stopień równoległości ustawiono wartość większą niż 2 w konfiguracji serwera.
Rozwiązanie
Aby rozwiązać ten problem, Uzyskaj najnowszy dodatek Service Pack dla programu SQL Server 2008. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
968382 Jak uzyskać najnowszy dodatek Service Pack dla programu SQL Server 2008
Obejście
Aby obejść ten problem, użyj jednej z następujących metod:
-
Włącz flagę śledzenia 4134, jeśli została zastosowana jedna z następujących aktualizacji:
-
Pakiet aktualizacji zbiorczej 6 dla programu SQL Server 2008 lub nowszej wersji zbiorczej pakietu aktualizacji dla programu SQL Server 2008
-
Pakiet aktualizacji zbiorczej 2 dla programu SQL Server 2008 z dodatkiem Service Pack 1 (SP1) lub nowszej wersji zbiorczej pakietu aktualizacji dla programu SQL Server 2008 z dodatkiem SP1
Aby uzyskać więcej informacji na temat włączania flag śledzenia, odwiedź następującą witrynę MSDN w sieci Web:
-
-
Zapoznaj się z sekcją "Obejście" w artykule 970198 z bazy wiedzy Microsoft Knowledge Base. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
970198 Poprawka: podczas uruchamiania zapytania używającego funkcji row_number w programie SQL Server 2008 jest wyświetlany nieprawidłowy wynik