BCP korrumperar tabellindex genom att sätta in dubbla rader

BCP är SQL Server verktyg som du kan använda för att kopiera bulk data mellan en datafil och instans av MS SQL Server. Du kan också använda den för att importera / exportera data i / från SQL Server-tabeller. Men ibland när du utför en bulk kopieringen, korrumperar det indexsidor av unika nonclustered index. Det inträffar när denna operation resulterar i dubbla rader insättning i en tabell. I sådana situationer, kan du få ett felmeddelande om att tabellen är skadad. Således, för att återställa den information som saknas, bör du använda din senaste backup. Det kan hända att du inte har en sådan backup som kan ge önskat resultat. För att klara upp sådana problem, kan du använda kraftfulla SQL återvinning programvara.

När du kör DBCC CHECKTABLE att kolla SQL bord konsistens, kan du få nedan fel:

server: msg 8951, 16 nivån, staten 1, rad 0
Tabell Corrupt: Tabell ‘tabellnamn’ (ID 1797581442). Saknad eller ogiltig nyckel i index ‘IDX_2 “(ID 2) för raden:

server: msg 8955, 16 nivån, staten 1, rad 0
Data rad (1:97:0) identifieras med (RID = (1:97:0)) har indexvärden (Kol1 = 1 och Col2 = 1 och Col3 = 12 och col4 = 30 sep 2000 12:00! T © ~ 0WeG).

orsaka

Den mest sannolika orsaken till dessa felmeddelanden att inträffa är att du har använt bulk kopieringen som har skadat indexera sidor av unika klustrade inget index. Det inträffar när bulk kopiering eller DTS (Data Transformation Services) import bipacksedlarna dubbletter rader i en tabell, när något av följande villkor föreligger:

Ø indatafil du använder innehåller dubblerade rader
Ø Tabellen skall riktas inte innehåller någon klustrade index och innehåller en unik ingen klustrade index som har skapats med ignore_dup_key alternativet
O ni har slagit på Select Into / Bulk Copy alternativet

lösning

Applicera någon av dessa metoder för att åtgärda sådana problem:

Ø Du bör rengöra målet tabellen genom att släppa någon klustrade index. Du kan sedan ta bort dubblerade rader och återskapa den unika utan klustrade index
Ø Om problemet kvarstår kan du använda kommersiella. SQL Repair programvara för att reparera och återställa tabellinnehåll. Sedan använder DBCC CHECKTABLE med reparation alternativet inte kan korrigera problemet med SQL Recovery programvara är det enda sättet vänstern.

Stellar Phoenix SQL Recovery är ett avancerat verktyg för att reparera och återställa skador SQL-databaser och dess komponenter. Den stöder säker SQL reparation för SQL Server 2008, 2005 och 2000. Det kan återställa databastabeller, triggers, lagrade procedurer, vyer, regler och andra komponenter databas. Den är kompatibel med Windows Vista, XP, 2003, 2000 och NT.