Due to unexpected events, a multiple record corruption at table level in a Native database may unfortunately happen. The error that may arise is something like this (reported below in Danish) while performing actions on determined records in the corrupted area.
This error text is taken directly from the fin.stx file. For example:
// ÚÄ´ DB ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// ³ ÀÄÄÄÄÙ ³
// ³ Database System ³
Caution: There is an error in the database structure. This occurs if the database file is changed by another program or if a device driver does not function properly.
You must correct this error before you can continue. The error (%18 in module %23) may have been caused by the computer or a program.
Key Fields: %6
Check the database. On the File menu, click Database, click Test, and then click Maximum. If you get the same error, you should:
Restore the backup that you made with the built-in backup functionality into the new database. To test it, on the File menu, click Database, click Test, and then click Maximum.
If this procedure does not work, then any database changes that were made after the most recent backup will be lost. Restore the most recent backup that was made with the built-in backup functionality and test it.
For security reasons, you should save the old database until you have used the new one for a period of time.
Contact your system administrator for assistance.
The official position from Microsoft, then, is to restore a valid recent backup or a copy of the database not affected from this error. But what if you do not have any of those?
There are some chances to isolate those corrupted records, like cancer cells, and create a brand new database with only the sane part of the old one. I have called this “Table Isolation” trick, observing it from a medical perspective.
This action plan could be applied if:
If those 3 prerequisites can be considered fulfilled then you could go with the table isolation trick.
NOTE: In the next example we take into considerations the corruption of multiple records within table 37 Sales Line for one specific company.
At the end of this procedure, remember to run a FULL NAV database test and correct all the error that may arise.
Remember also to correct all the dependencies left by the missing record and, overall, PLEASE before do this in live environment, always TEST it on a safe test environment.
These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.
Duilio Tacconi (dtacconi)
Microsoft Dynamics Italy
Microsoft Customer Service and Support (CSS) EMEA
Just a thing to keep in mind: For some reason I've experienced that record links and windows logins (possibly other system tables too) are not restored when the data common to all companies are restored. I haven't had the opportunity to double check, but just remember to check it. Apart from that, the procedure works just fine.
Best regards, Poul Anker Gensmann