Remediere: Coloană acoperire de date poate fi eliminat când actualizați o altă coloană de lungime variabilă într-un tabel acoperire de date făcut upgrade de la SQL Server 2005

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 3120595
Simptome
Atunci când actualizați o valoare într-o coloană de lungime variabilă într-un tabel acoperire de date care s-a făcut upgrade de la Microsoft SQL Server 2005, se șterg datele într-o altă coloană de lungime variabilă în acelaşi rând.

Această problemă se produce în Microsoft SQL Server 2014 și Microsoft SQL Server 2012. Următorul scenariu pot expune o bază acoperire de date la această problemă. Această listă reprezintă o secvență de evenimente:

  • O bază acoperire de date este creat în SQL Server 2005.
  • În SQL Server 2005, să modifice un tabel, și apoi să fixați unul sau mai multe coloane de lungime variabilă la sfârșitul definiția tabelului.
  • Adăugați coloane de lungime variabilă noi care au o lungime de coloane întrerupte și tipul acoperire de date similare.
  • Baza acoperire de date se face upgrade de la SQL Server 2005 la SQL Server 2014 sau SQL Server 2012.
  • Actualizaţi ulterior valoarea din coloana de lungime variabilă alt, iar datele actualizate a overflow la o pagină nouă.
În acest scenariu, datele din unul sau mai multe coloane nou adăugat în acelaşi rând pot fi șterse.

Aveți posibilitatea să utilizați scriptul în Mai multe informații secțiune pentru a verifica următoarele:

  • Dacă orice tabele într-o anumită bază acoperire de date ați șters coloane de lungime variabilă
  • Dacă coloane suplimentare de lungime variabilă au fost create care au potrivire decalează
Notă Această problemă nu se descopere prin DBCC CHECKDB.
Rezoluţie
Notă Această remediere împiedică numai aparițiile viitoare a problemei.

Important Dacă faceți upgrade bazei acoperire de date la SQL Server 2005 pentru SQL Server 2014 sau SQL Server 2012, asigurați-vă să consultați secțiunea "Rezolvare".

Această problemă a fost rezolvată mai întâi în următoarea actualizare cumulativă pentru SQL Server:

Acestea sunt cele mai recente actualizări cumulative pentru aceste versiuni de program.

Recomandare: Instalați ultimul actualizarea cumulativă pentru SQL Server 2014 sau SQL Server 2012

Instalați fiecare noua actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Verifica cele mai recente actualizări cumulative pentru SQL Server:



Notă Pentru mai multe informații despre cele mai recente compilările SQL Server, consultați Unde pot găsi informații despre cele mai recente SQL Server se bazează.
Remediere
Important Se aplică această soluție, atunci când faceți upgrade bazei acoperire de date la SQL Server 2005, SQL Server 2014 sau SQL Server 2012 și înainte de a vă permite declarații de actualizare poate executa în baza acoperire de date actualizat.

Pentru a rezolva această problemă dacă vă fixați coloane într-un tabel, asigurați-vă că efectuați oricare dintre următoarele înainte de a actualiza sau șterge rânduri:

  • Reconstrui index grupat utilizând ALTER INDEX (...) REGENERAȚI
  • Regenerați heap utilizând ALTER TABLE (...) REGENERAȚI

Informaţii suplimentare
Utilizați următorul script pentru a verifica dacă orice tabele într-o anumită bază acoperire de date ați șters coloane potențial sunt afectate de această problemă.

Notă Dacă scriptul nu returnează rândurile, care înseamnă că această problemă în prezent se aplică orice tabel în sistemul dvs.
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];

Important Acest script ar trebui să fie utilizat doar pentru scopul şi sfera de aplicare a acestui articol.
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 3120595 - Ultima examinare: 05/31/2016 06:52:00 - Revizie: 10.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 KbMtro
Feedback