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

Uwzględnij następujący scenariusz.

  • Istnieje kwerenda korzystająca z funkcji ROW_NUMBER wraz z lewym sprzężeniem zewnętrznym w programie Microsoft SQL Server 2008.

  • Tworzysz instrukcję SELECT , która używa kwerendy jako podkwerendy i zwraca unikatowe wiersze przy użyciu słowa kluczowego DISTINCT .

  • Zostanie uruchomiona ta instrukcja SELECT .

W tym scenariuszu może zostać wyświetlony nieprawidłowy wynik. Lewe sprzężenie zewnętrzne jest niepoprawnie ignorowane.Uwaga Aby uzyskać więcej informacji na temat odtwarzania tego problemu, zobacz podsekcję "instrukcje dotyczące odtwarzania tego problemu" w sekcji "więcej informacji".

Rozwiązanie

Informacje o aktualizacji zbiorczej

SQL Server 2008 R2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 6. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2489376 Pakiet aktualizacji zbiorczej 6 dla programu SQL Server 2008 R2 Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń dołączone do poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

981356 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu programu SQL Server 2008 R2

SQL Server 2008 z dodatkiem Service Pack 1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 11 dla programu SQL Server 2008 z dodatkiem Service Pack 1. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2413738 Pakiet aktualizacji zbiorczej 11 dla programu SQL Server 2008 z dodatkiem Service Pack 1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

970365 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2008 Poprawki programu Microsoft SQL Server 2008 są tworzone dla określonych pakietów Service Pack programu SQL Server. Musisz zastosować poprawkę dodatku Service Pack 1 dla programu SQL Server 2008 do instalacji dodatku Service Pack 1 do programu SQL Server 2008. Wszystkie poprawki podane w dodatku Service Pack programu SQL Server są domyślnie zawarte w następnym dodatku Service Pack dla programu SQL Server.

SQL Server 2008 z dodatkiem Service Pack 2

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 2 dla programu SQL Server 2008 z dodatkiem Service Pack 2. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2467239 Pakiet aktualizacji zbiorczej 2 dla programu SQL Server 2008 z dodatkiem Service Pack 2Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. 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:

2402659 Kompilacje programu SQL Server 2008 wydane po opublikowaniu dodatku Service Pack 2 dla programu SQL Server 2008 Poprawki programu Microsoft SQL Server 2008 są tworzone dla określonych pakietów Service Pack programu SQL Server. Musisz zastosować poprawkę dodatku Service Pack 2 dla programu SQL Server 2008 do instalacji dodatku Service Pack 2 do programu SQL Server 2008. Wszystkie poprawki podane w dodatku Service Pack programu SQL Server są domyślnie zawarte w następnym dodatku Service Pack dla programu SQL Server.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Więcej informacji

Procedura odtwarzania tego problemu

  1. Uruchom następujące instrukcje. Te instrukcje służą do tworzenia dwóch tabel i wstawiania danych do tabel.

    create table A (a1 int)create table B (b1 int)insert into A values(1)insert into B values(1)insert into B values(1)
  2. Uruchom następującą instrukcję. W tej instrukcji jest używana funkcja ROW_NUMBER wraz z lewym sprzężeniem zewnętrznym.

    select a1, row_number() over (partition by a1 order by a1) as a3from Aleft join B ON A.a1 = B.b1
  3. Uruchom następującą instrukcję. Ta instrukcja używa zapytania w kroku 2 jako podkwerendy:

    select distinct a1, a3from (      select a1, row_number() over (partition by a1 order by a1) as a3      from A      left join B ON A.a1 = B.b1) as x

UwagaKwerenda w kroku 3 zwraca nieprawidłowy wynik w przypadku wystąpienia tego problemu.

Informacje

Aby uzyskać więcej informacji na temat funkcji ROW_NUMBER i sprzężeń zewnętrznych, odwiedź następującą witrynę sieci Web Microsoft Developer Network (MSDN):

Aby uzyskać więcej informacji dotyczących modelu obsługi przyrostowej dla programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

935897 Model obsługi przyrostowej jest dostępny w zespole programu SQL Server w celu dostarczenia poprawek dotyczących zgłaszanych problemówAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

822499Nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL ServerAby uzyskać więcej informacji o terminologii dotyczącej aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

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?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×