KB2589980 — Poprawka: nieprawidłowe wyniki lub naruszenie ograniczenia podczas uruchamiania instrukcji SELECT lub DML, w której jest używana funkcja row_number, oraz planu wykonania równoległego w programie SQL Server 2008

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:

    Jak włączyć flagi śledzenia

  • 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

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×