Hallo,
bitte kein TOFU und auch kein TUFO ;) (Betrifft das Zitieren)
DBGhost kann recht gut mit MS SQL 2000 ... Aber es scheitert kläglich an jeder neuen Funktion (Schemas, neue Objekttypen, .Net-Sachen sowieso) von MS SQL 2005. Ausserdem vergisst es einfach Fehler bei Problemen mit Linked Servers (z.b. nicht existierende objekte via linked server).
Packe jede einzelne (atomare) Änderung am Schema generell in ein eigenes Script, dann bist du das Problem los, dass Teile von Script X bereits ausgeführt und andere nicht ausgeführt sind.
Packe DML für die allfällige Datenmigration in eine Explizite Transaktion.
Ansonsten kann man auch folgenden Weg gehen:
(1) Baue eine neue DB from-scratch erstmal nur mit Tabelle aus deinen Scripts (zb. mit DBGhost)
(2) DML-migriere die Daten aus der bestehenden alten DB in die neue -> Script(s) in Transaktion
(3) füge Constraints in die neue DB ein (zb. mit DBGhost)
(4) füge weitere Objekte wie SPs, Views hinzu (zb. mit DBGhost)
BTW: Backups und Restore kann man auch scripten :)
Cheers, Frank