Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Poprawka: Kolumna danych może być usunięte po zaktualizowaniu innej zmiennej długości kolumny w tabeli bazy danych uaktualnienie z programu SQL Server 2005

WAŻNE: Ten artykuł został przetłumaczony przy użyciu oprogramowania firmy Microsoft do tłumaczenia maszynowego i może być poprawiony przy użyciu technologii Community Translation Framework (CTF). Firma Microsoft udostępnia artykuły tłumaczone maszynowo, poprawione przez społeczność, a także tłumaczone przez tłumaczy profesjonalnych, aby zapewnić dostęp do wszystkich artykułów w bazie wiedzy w wielu językach. Artykuły tłumaczone maszynowo i poprawione mogą zawierać błędy pisowni, składniowe i gramatyczne. Firma Microsoft nie ponosi odpowiedzialności za żadne nieścisłości, błędy ani szkody spowodowane przez niepoprawne tłumaczenia zawartości ani przez korzystanie z niej przez klientów. Więcej o strukturze CTF: http://support.microsoft.com/gp/machine-translation-corrections/pl.

Anglojęzyczna wersja tego artykułu to: 3120595
Symptomy
Po zaktualizowaniu wartości kolumny o zmiennej długości w tabeli bazy danych, który został uaktualniony z systemu Microsoft SQL Server 2005, skreśla się dane w innej kolumny o zmiennej długości w tym samym wierszu.

Ten problem występuje w 2014 r. Microsoft SQL Server i Microsoft SQL Server 2012. Poniższy scenariusz może narazić bazy danych do tego problemu. Ta lista reprezentuje sekwencję zdarzeń:

  • Bazy danych jest tworzony w programie SQL Server 2005.
  • W programie SQL Server 2005 alter tabela, a następnie upuść jedną lub więcej kolumn o zmiennej długości na końcu definicji tabeli.
  • Możesz dodać nowe kolumny o zmiennej długości, które mają podobny typ danych i długość kolumny porzuconych.
  • Bazy danych jest uaktualniany z programu SQL Server 2005 do programu SQL Server 2014 lub programu SQL Server 2012.
  • Później zaktualizować wartość innej kolumny o zmiennej długości i zaktualizowane dane ma przepełnienie buforu do nowej strony.
W tym scenariuszu może być usunięte dane w jednym lub kilku nowo dodane kolumny w tym samym wierszu.

Można użyć skryptu w Więcej informacji sekcji, aby sprawdzić, co następuje:

  • Czy wszystkie tabele w danej bazy danych usunięto kolumny o zmiennej długości
  • Czy dodatkowe kolumny o zmiennej długości zostały utworzone, które mają odpowiadające sobie przeciwstawna
Uwaga: Ten problem nie zostanie wykryta przez polecenie DBCC CHECKDB.
Rozwiązanie
Uwaga: Ta poprawka zapobiega tylko przyszłe wystąpienia tego problemu.

Ważne: Jeśli uaktualniasz bazy danych programu SQL Server 2005 do programu SQL Server 2014 lub programu SQL Server 2012, upewnij się, że można znaleźć w sekcji "Obejście problemu".

Ten problem został po raz pierwszy rozwiązany w następującą aktualizację zbiorczą dla programu SQL Server:

Są najnowsze aktualizacje zbiorcze dla tych wersji programu.

Zalecenie: Zainstalować najnowszą aktualizację zbiorczą dla programu SQL Server 2014 lub programu SQL Server 2012

Instalowanie każdej nowej aktualizacji zbiorczej dla programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej zbiorczej aktualizacji. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:



Uwaga: Aby uzyskać więcej informacji dotyczących najnowszych kompilacjach programu SQL Server zobacz Gdzie można znaleźć informacje o najnowszych SQL Server tworzy.
Obejście problemu
Ważne: Zastosować to obejście, gdy uaktualnienie bazy danych programu SQL Server 2005, SQL Server 2014 lub programu SQL Server 2012 i przed Niech instrukcji UPDATE można uruchomić w uaktualnionej bazy danych.

Aby obejść ten problem, jeśli usuwanie kolumn w tabeli, należy sprawdzić, wykonaj jedną z następujących czynności przed zaktualizować lub usunąć wiersze:

  • Odbudować indeks klastrowany za pomocą ALTER INDEX (...) ODBUDUJ
  • Odbuduj sterty za pomocą instrukcji ALTER TABLE (...) ODBUDUJ

Więcej informacji
Sprawdzanie, czy wszystkie tabele w danej bazy danych zostały usunięte kolumny, które są potencjalnie zagrożone przez ten problem, można użyć następującego skryptu.

Uwaga: Jeśli skrypt nie zwróciła żadnych wierszy, co oznacza, że ten problem nie obecnie dotyczą dowolnej tabeli w systemie.
SELECT DISTINCT OBJECT_NAME(sp.[object_id]) AS TableWithDroppedColsFROM sys.system_internals_partition_columns sipc1 WITH (NOLOCK)INNER JOIN sys.system_internals_partition_columns sipc2 WITH (NOLOCK)       ON sipc1.[partition_id] = sipc2.[partition_id] AND              sipc1.leaf_offset = sipc2.leaf_offset AND              sipc1.leaf_offset < 0 AND               sipc1.is_dropped < sipc2.is_droppedINNER JOIN sys.partitions sp WITH (NOLOCK) ON sipc1.[partition_id] = sp.[partition_id];

Ważne: Ten skrypt powinien służyć tylko do cel i zakres niniejszego artykułu.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Właściwości

Identyfikator artykułu: 3120595 — ostatni przegląd: 05/31/2016 06:56:00 — zmiana: 11.0

Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3120595 KbMtpl
Opinia