KB2504090 — POPRAWKA: Naruszenie zasad dostępu lub niepoprawny wynik podczas wstawiania danych do lub aktualizowania nowej partycji tabeli partycjonowanej w SQL Server 2008 R2, SQL Server 2012 lub SQL Server 2008

Dotyczy
SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Web SQL Server 2008 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Firma Microsoft dystrybuuje poprawki do programu Microsoft SQL Server 2008 R2 jako jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każda nowa wersja zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji poprawki programu SQL Server 2008 R2.

Objawy

Rozważmy następujące scenariusze:

Scenariusz 1

  • Usuwasz kolumnę tabeli partycjonowanej w programie Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012 lub Microsoft SQL Server 2008.
  • Dla tabeli tworzona jest nowa partycja.
  • Podjęto próbę wstawienia danych do nowej partycji tabeli.
  • Partycje tabeli są przełączane.
  • Podjęto próbę wstawienia danych do nowej partycji tabeli.

W takim przypadku może dojść do naruszenia zasad dostępu. Ponadto wyświetlany jest następujący komunikat o błędzie:

Uwaga

Wystąpił poważny błąd bieżącego polecenia. Ewentualne wyniki należy odrzucić.

          

Scenariusz 2

  • Masz tabelę podzieloną na partycje w programie SQL Server 2008 R2, SQL Server 2012 lub SQL Server 2008.
  • Zmieniasz typ kompresji partycji.
  • Podjęto próbę zaktualizowania partycji lub wstawienia do niej danych.

W takim przypadku może dojść do naruszenia zasad dostępu. Ponadto wyświetlany jest następujący komunikat o błędzie:

Uwaga

Wystąpił poważny błąd bieżącego polecenia. Ewentualne wyniki należy odrzucić.

          

Przyczyna

Ten problem występuje, ponieważ akcesor, którego program SQL Server używa do wstawiania danych do różnych partycji, niepoprawnie rozpoznaje zmiany metadanych. Gdy dane są wstawiane do nowej partycji, która jest tworzona po usunięciu kolumny, liczba maksymalnych kolumn dopuszczających wartość null w nowej partycji może być o jeden mniejsza niż liczba maksymalnych kolumn dopuszczanych do wartości null w starej partycji.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Aktualizacja zbiorcza 4 dla programu SQL Server 2012 z dodatkiem SP1

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 4. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2012 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2833645 Zbiorcza aktualizacja 4 dla dodatku SP1 SQL Server 2012 Uwaga Ze względu na to, że kompilacje są zbiorcze, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń, które były zawarte w poprzedniej wersji poprawki dla SQL Server 2012 z dodatkiem SP1. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2772858 Kompilacje SQL Server 2012 wydane po wydaniu dodatku Service Pack 1 SQL Server 2012

Aktualizacja zbiorcza 6 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 2

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 6. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem Service Pack 2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2830140 Pakiet aktualizacji zbiorczych 6 dla dodatku Service Pack 2 SQL Server 2008 R2Uwaga Ponieważ te kompilacje są zbiorcze, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji dodatku Service Pack 2 SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2730301 Kompilacje SQL Server 2008 R2 wydane po wydaniu dodatku Service Pack 2 SQL Server 2008 R2

Aktualizacja skumulowana 7 dla programu SQL Server 2012

                
Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 7. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2012, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2823247 Pakiet aktualizacji zbiorczej 7 dla SQL Server 2012Uwaga Ponieważ kompilacje są zbiorcze, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji poprawki SQL Server 2012. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2692828 Kompilacje SQL Server 2012 wydane po SQL Server 2012

Aktualizacja zbiorcza 12 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 12. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla dodatku Service Pack 1 dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2828727 Pakiet aktualizacji zbiorczej 12 dla dodatku Service Pack 1 SQL Server 2008 R2Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji dodatku Service Pack 1 dla SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2567616 Kompilacje SQL Server 2008 R2 wydane po wydaniu dodatku Service Pack 1 SQL Server 2008 R2

Aktualizacja zbiorcza 10 dla programu SQL Server 2008 z dodatkiem Service Pack 3

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 10. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dodatku Service Pack 3 dla programu SQL Server 2008, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2814783 Pakiet aktualizacji zbiorczej 10 dla dodatku Service Pack 3 SQL Server 2008Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji dodatku Service Pack 3 SQL Server 2008. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2629969 Kompilacje SQL Server 2008 wydane po wydaniu dodatku Service Pack 3 SQL Server 2008

SQL Server 2008 R2 z dodatkiem Service Pack 1

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 9. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla dodatku Service Pack 1 dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2756574 Pakiet aktualizacji zbiorczej 9 dla SQL Server 2008 R2 z dodatkiem Service Pack 1Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji dodatku Service Pack 1 dla SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2567616 Kompilacje SQL Server 2008 R2 wydane po wydaniu dodatku Service Pack 1 SQL Server 2008 R2

SQL Server 2008 R2

Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 7. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2507770 Pakiet 7 aktualizacji zbiorczych dla systemu SQL Server 2008 R2 Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji poprawki dla SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

981356 Kompilacje SQL Server 2008 R2 wydane po wydaniu SQL Server 2008 R2

Informacje o dodatku Service Pack dla programu SQL Server 2008 R2

Aby rozwiązać ten problem, uzyskaj najnowszy dodatek Service Pack dla programu SQL Server 2008 R2. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:

2527041 Jak uzyskać najnowszy dodatek Service Pack dla programu SQL Server 2008 R2

Obejście

Aby obejść ten problem, odbuduj wszystkie partycje tabeli partycjonowanej po usunięciu jednej z kolumn tabeli.

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Ten problem został po raz pierwszy rozwiązany w dodatku Service Pack 1 dla programu SQL Server 2008 R2.

Więcej informacji

Aby uzyskać więcej informacji o tworzeniu skompresowanych tabel i indeksów, odwiedź następującą witrynę MSDN w sieci Web:

Kompresja danych