Oprava: Stĺpec údajov vymazali pri aktualizácii iného premenlivou dĺžkou stĺpca v tabuľke databázy inovovali zo servera SQL Server 2005

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 3120595
Príznaky
Pri aktualizácii hodnota premenlivou dĺžkou stĺpca v tabuľke databázy, ktorý bol aktualizovaný z Microsoft SQL Server 2005, údaje v druhom stĺpci premenlivou dĺžkou v danom riadku odstránené.

Tento problém sa vyskytuje v Microsoft SQL Server 2014 Microsoft SQL Server 2012. O nasledujúcom prípade môžu vystaviť databázu tento problém. Tento zoznam reprezentuje postupnosť udalostí:

  • Databáza sa vytvorí v aplikácii SQL Server 2005.
  • SQL Server 2005, môžete zmeniť tabuľky a potom presuniete jeden alebo viacero stĺpcov premenlivou dĺžkou na konci definíciu tabuľky.
  • Pridáte novú premenlivou dĺžkou stĺpce, ktoré majú podobný typ údajov a dĺžka prerušené stĺpcov.
  • Databáza inovovali SQL Server 2005, SQL Server 2014 alebo SQL Server 2012.
  • Neskôr aktualizovať hodnotu iného premenlivou dĺžkou stĺpca a aktualizované údaje je pretekanie na novú stranu.
V takomto prípade môže odstrániť údaje v jednom alebo viacerých pridali stĺpce v rovnakom riadku.

Môžete použiť skript v Ďalšie informácie časti skontrolujte nasledovné:

  • Či všetky tabuľky v databáze danej odstránili premenlivou dĺžkou stĺpcov
  • Či premenlivou dĺžkou riadky boli vytvorené s zodpovedajúce kompenzácií
Poznámka: Tento problém sa tým DBCC CHECKDB nenájde.
Riešenie
Poznámka: Táto oprava len zabráni budúce výskytu problému.

Dôležité upozornenie: Ak inovujete databázy zo servera SQL Server 2005, SQL Server 2014 alebo SQL Server 2012, skontrolujte, či ste nájdete v časti "Riešenie".

Tento problém bol najskôr odstránený v nasledujúcej kumulatívnej aktualizácie pre server SQL Server:

Toto sú najnovšie kumulatívnej aktualizácie pre tieto verzie programu.

Odporúčanie: Nainštalujte najnovšie Kumulatívna aktualizácia pre SQL Server 2014 alebo SQL Server 2012

Každý nový kumulatívnej aktualizácie nainštalovať, SQL Server obsahuje všetky rýchlych a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite sa na najnovšie kumulatívnej aktualizácie pre server SQL Server:



Poznámka: Ďalšie informácie o najnovších zostavy SQL Server, nájdete v časti Vyhľadanie informácií o najnovších SQL Server zostavy.
Ako problém obísť
Dôležité upozornenie: Po inovácii databázy zo servera SQL Server 2005, SQL Server 2014 alebo SQL Server 2012 a pred umožníte UPDATE vyhlásenie spustiť upgrade databázy, použite tento postup.

Tento problém obísť, ak presuniete stĺpce v tabuľke, aby vykonajte niektorý z nasledujúcich pred aktualizovať alebo odstraňovať riadky:

  • Skupinový index znovu zostaviť pomocou zmeniť INDEX... OBNOVIŤ
  • Obnoviť haldy pomocou ALTER TABLE... OBNOVIŤ

Ďalšie informácie
Overiť, či všetky tabuľky v databáze danej odstránené stĺpce, potenciálne ovplyvnené tento problém, môžete použiť nasledujúci skript.

Poznámka: Ak skript nevracia všetky riadky, ktoré znamená, že tento problém v súčasnosti nevzťahuje na tabuľku v systéme.
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];

Dôležité upozornenie: Tento skript sa použije len na tento účel a rozsah tohto článku.
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 3120595 – Posledná kontrola: 05/31/2016 06:37:00 – Revízia: 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 KbMtsk
Pripomienky