T-SQL-Skripts zum kopieren aller Tabellen-Integritätsregeln
Ich habe viele Tabellen auf meiner lokalen Datenbank und zog Sie in die Produktionsdatenbank.
Nun arbeite ich an fine-tuning der Datenbank und erstellt viele Einschränkungen auf meinem lokalen Datenbank-Tabellen wie PK, FK, Default-Werte, Indizes etc. etc.
Nun würde ich gerne kopieren nur mit diesen Einschränkungen die Produktion-Datenbank. Gibt es einen Weg, es zu tun?
Bitte beachten Sie, dass meine Produktions-Datenbank-Tabellen bereits gefüllt mit einigen Daten. Ich kann also nicht löschen und neu erstellen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht wollen, kaufen Sie keine Werkzeuge (die sind völlig Ihren Preis Wert, BTW), kann man immer befragen die systemkatalogsichten, und extrahieren Sie die info von dort aus zum erstellen von Skripts, die Sie ausführen konnte, auf Ihre neue Datenbank.
In dem Fall z.B. die default-Einschränkungen, diese Abfrage zeigt eine Liste aller Standard-constraints in Ihrer Datenbank:
darauf und du könntest natürlich eine Abfrage erstellen, die emittieren würde T-SQL-Anweisungen zu erstellen diese default-Einschränkungen werden auf Ihre Ziel-server:
Würden Sie bekommen so etwas wie dieses (für die
AdventureWorks
Beispiel-DB):Natürlich, Sie könnte zwicken die resultierende T-SQL Ausgabe nach Ihren wünschen - aber im Grunde, kopieren&fügen Sie die Ergebnisse aus der Abfrage zu Ihrer neuen Datenbank, und Los gehts.
Natürlich gibt es ein ähnliches system, Katalog-sichten für die Fremdschlüssel-Beziehungen (sys.foreign_keys), check-Einschränkungen (sys.check_constraints), Indizes (sys.Indizes und sys.index_columns) und viele mehr.
Es ist ein bisschen Arbeit, aber es kann getan werden, auf Ihrer eigenen Zeit, und du wirst eine Menge lernen über SQL Server-Prozess.
Es ist also eine traditionelle "make or buy" - Entscheidung, noch einmal wieder 🙂
Marc
Ist der beste Weg, um zu speichern Sie alle Ihre DDL-code in ein source-control. Dann bereitstellen, um die Produktion mit tools wie dbGhost (mein Favorit) oder SQL Vergleichen
Red Gate ' s SQL Vergleichen ist eine beliebte, nicht-freie Weise, dies zu tun.
Sicher, dies ist eine alte post, aber keines der Skripts in allen oben genannten Antworten die Tabelle schemas als gut. Also es hat nicht funktioniert aus der box für meine Datenbank.
Diese hat, so geschah es:
Ich an ihn aus Donabel Santos ist blog hier.
BEARBEITEN und NB: vergewissern Sie Sich, dass beide Teile der Abfrage, und speichern Sie die zweite Ergebnismenge (d.h.
ADD CONSTRAINT
s), bevor Sie Ihre default-Einschränkungen, sonst werden Sie nicht in der Lage, neu zu erstellen Sie wieder (Nein, ich nicht 🙂Einen guten und frei Microsoft-tool. Sie können exportieren Sie das schema und die Daten.
Microsoft SQL Server Database Publishing Wizard
Versuchen DBSourceTools. http://dbsourcetools.codeplex.com
Es hat schema-compare-Funktion, die Ihnen helfen, erstellen Sie eine update-Skript.
Beachten Sie aber, dass Sie sollten mit source-code-control auf Ihre gesamte Datenbank aus.
Dies ist, was DBSourceTools entworfen wurde, zu tun - helfen Sie den Entwicklern, bringen Ihre Datenbanken unter Quellcodeverwaltung.