2008-09-16 12 views
1

Ich habe eine SQL Server 2005-Datenbank, die nur wiederhergestellt werden konnteSQL Server: Spalte NULL-Zulässigkeit Inkonsistenz

Restore Database The_DB_Name 
From Disk = 'C:\etc\etc' 
With Continue_After_Error 

ich mit gesagt bin die Source-Datenbank war in Ordnung. Die Wiederherstellung Berichte

Warning: A column nullability inconsistency was detected in the metadata of index "IDX_Comp_CompanyId" (index_id = 2) on object ID nnnnn in database "The_DB_Name". The index may be corrupt. Run DBCC CHECKTABLE to verify consistency.

DBCC CHECKTABLE (Company) 

gibt

Msg 8967, Level 16, State 216, Line 1 An internal error occurred in DBCC that prevented further processing. Contact Customer Support Services.

Msg 8921, Level 16, State 1, Line 1
Check terminated. A failure was detected while collecting facts. Possibly tempdb out of space or a system table is inconsistent. Check previous errors.

Alter Index IDX_Comp_CompanyId On dbo.Company 
Rebuild 

mich gibt

Msg 824, Level 24, State 2, Line 1
SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:77467; actual 45:2097184). It occurred during a read of page (1:77467) in database ID 20 at offset 0x00000025d36000 in file 'C:\etc\etc.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Wie viel Mühe bin ich?

Antwort

3

Eine Beschädigung in einem Index ist nicht annähernd so schlimm wie eine Beschädigung in der Basistabelle, da ein Index neu erstellt werden kann.

Vergleichen Sie die Tabellen- und Indexdefinitionen zwischen den Quell- und Zieldatenbanken. Überprüfen Sie auch die Version beider Server. (Wurde das Backup automatisch aktualisiert, wenn es auf dem Server wiederhergestellt wurde) Löschen Sie den Index, erstellen Sie ihn neu, und führen Sie die CheckTable erneut aus.