Gibt es einen „armen Mann“ Alternative zum Erstellen von Skripts aus gesamtem Datenbankschema RedGate? [geschlossen]

StackOverflow https://stackoverflow.com/questions/169107

Frage

Ich bin in einer Situation, wo ich würde ein Skript für eine Datenbank zu erzeugen, die ich auf einem anderen Server laufen konnte und eine Datenbank identisch mit dem Original, aber ohne irgendwelche Daten. Im Grunde möchte ich mit einem großen Skript erstellen, um am Ende, die das Datenbankschema erfaßt.

ich in einer Umgebung arbeite, auf dem SQL Server 2000 installiert ist, und ich bin nicht in der Lage, die 2005-Client-Tools (in dem Fall, dass sie helfen würden) zu installieren. Ich kann nicht leisten RedGate, aber ich mag wirklich eine Datenbank mit identischem Schema auf einem anderen Server haben.

Irgendwelche Vorschläge? Jede einfache Exe (keine Installation erforderlich) Tools, Tipps oder T-SQL-Tricks sehr geschätzt werden würde.

Update: Die Datenbank, die ich mit Arbeit bin hat 200+ Tabellen und mehrere Fremdschlüsselbeziehungen und Abhängigkeiten, so manuell jede Tabelle scripting und Einfügen zusammen das Skript ist kein gangbarer Weg. Ich bin auf der Suche nach etwas besser als diese manuellen Lösung

Zusätzliche aktualisieren Wenn ich nicht völlig fehlt etwas bin, ist dies keine praktikable Lösung, um die SQL 2000-Tools. Wenn ich die Option auswählen, um ein Skript für eine Datenbank erstellen zu generieren. Ich schließe mit einem Skript auf, die eine Datenbank Befehl enthält CREATE und schafft keines der Objekte - die Tabellen, die Einschränkungen usw. SQL 2005 der Management-Studio als auch die Objekte verarbeiten kann, aber die Datenbank ist in einer Umgebung, wo es keine Weg für mich, eine Installation von Management Studio, um es zu verbinden.

War es hilfreich?

Lösung

Ausführen von SQL Server Management Studio mit der rechten auf die Datenbank klicken und wählen Sie Script Database as > Create to > file

Das ist für SQL Server 2005. SQL Server 2000 Enterprise Manager hat einen ähnlichen Befehl. Einfach mit der rechten Maustaste auf die Datenbank > All Tasks > Generate Scripts.

EDIT: In SQL Server 2005 können Sie „Datenbank“ im Objekt-Explorer-Fenster auswählen und mehrere Datenbanken im Detailbereich auswählen. Dann mit der rechten Maustaste auf Ihre Auswahl und „Script-Datenbank als> Erstellen Sie auf> Datei“. Dies wird dazu führen, dass sie alle in ein Skript zu setzen und es werden alle Tabellen, Schlüssel, gespeicherte Prozeduren umfassen und Einschränkungen.

Andere Tipps

Also, vorausgesetzt ich, dass Sie nicht SQL Server Management Studio installieren. Nicht einmal die kostenlose Version. Wenn dies eine einmalige Sache ist, würde ich die roten Tor-Tools installieren. Die Testversion ist voll funktionsfähig für 14 Tage. Haben Sie Ihre Arbeit, dann deinstallieren. Sie könnten überprüfen auch http://www.xsqlsoftware.com/ , sie ähnliche Funktionen wie Red Gate haben. Wenn Ihre Datenbank klein ist, dann haben sie eine Option für Sie. Ich mag auch http://www.apexsql.com/ . Verwenden Sie den Versuch eines dieser und dann versuchen Sie es erneut Ihren Chef davon zu überzeugen, einen zu kaufen.

Zusätzlich zu den oben genannten Antworten, ich möchte, dass vorschlagen (für zukünftige Projekte, zumindest) Sie haben nicht Sie Datenbank-Design in der Datenbank Master selbst.

Eine Möglichkeit, dies zu erreichen, ist entweder einfach Ihre Datenbank-Tabellen zu pflegen, Verfahren etc. als ‚CREATE‘ Skripte vom ersten Tag an und entwickeln ein Master-Skript, das alle einzelnen Skripte zusammen für die Bereitstellung einer Datenbank Ihrer Wahl ziehen wird .

Eine anspruchsvollere Lösung ist so etwas wie Visual Studio Database Edition zu verwenden (wahrscheinlich zu teuer, wenn Ihre Kommentare sind durch nichts zu gehen), die Sie jedes Datenbankobjekt als ein Knoten in einem Projekt behandeln kann, während immer noch den ganzen erlaubt was mit wenigen Klicks bereitgestellt werden.

Die Erklärung dieser beiden Optionen ist über vereinfachte, da es viele anderen Fragen ist - Versionierung, Datenmigration usw. -. Aber das Hauptprinzip ist die gleiche

Wenn Sie extrahiert haben Ihr Skript - mit einer der anderen Antworten -. Sie können mit diesem Skript als Grundlage für Ihr ‚Master‘ zu prüfen,

Halten Sie einfach das ‚Design‘ aus der Datenbank - das ist rein für ‚Implementierungen‘

.

Versuchen des Prozesses zu denken, wie ähnlich der Entwicklung von Code -. Die Quelle und die Binärdateien getrennt gehalten werden, wobei letztere aus dem ehemaligen erzeugt

Ich habe verwendet dieses Programm von Codeproject erfolgreich schon viele Male zuvor. Nicht nur, dass es das Schema Skript aus, kann es (optional) Skript aus alle INSERT-Anweisungen für Neuerstellung der Datenbank benötigen.

Ich habe es gegen SQL Server 2000 in der Vergangenheit verwendet. Natürlich, wenn Sie eine Million Zeilen in einer Tabelle haben es vielleicht nicht eine gute Idee, um den Inhalt zu Skript, aber es ist ein wirklich nützliches Werkzeug tatsächlich eine Reihe von SQL-Skripten, um eine Datenbank zu replizieren.

Wenn es sich um einmalige Operation und Sie keine Lust das Objekt Skripte Bestellung selbst nur eine kostenlose Testversion von RedGate SQL downloaden Vergleichen .

Es ist 14 Tage voll funktionsfähige Version, so dass es den gesamten Job für Sie tun - es ist völlig legitim Lösung. Und Sie haben alle die Skripte für die zukünftige Verwendung mit Ihrem Handbuch Scripting. Auf jeden Fall bin ich mir ziemlich sicher, dass, wenn Sie herausfinden, wie praktisch das Werkzeug ist, dass Sie es in einem späteren Stadium kaufen und das ist, was sie wohl hoffen durch voll bietet Arbeitsprüfung. Es irgendwie auf diese Weise in meinem Fall gearbeitet.

Seien Sie sich bewusst sein, dass, sobald der Prozess abläuft es alle Werkzeuge, so stellen Sie sicher, wirkt sich das Beste daraus zu machen.

Michael Lang, wenn Sie mit der rechten Maustaste auf die Datenbank und wählen Sie ein Skript zu erstellen, gibt es mehrere Optionen Boxen, die Sie benötigen, um alles klicken generiert werden. 2005 ist viel einfacher, in dieser Hinsicht, aber 2000 kann dies tun, müssen Sie nur die richtigen Optionen wählen.

Wenn Sie sich für eine Kommandozeilen-Version suchen, SQL Server Hosting Toolkit für mich in der Vergangenheit gearbeitet hat.

Microsoft Database-Publishing-Assistent (in Visual Studio 2008).

Wie Sie erwähnen in SQL Server 2000 der Befehl verwendet wird:

Während in Enterprise Manager wählen Sie die Datenbank Sie wollen Skript-Objekte aus und dann Rechtsklick und wählen Sie Alle Tasks -> Generieren von SQL Scripts ...

Während in der Optionen Pane es praktisch ist, Option Erstellen Sie eine Datei pro Objekt es auf diese Weise Sie jedes Objekt in der Quellcodeverwaltung separat speichern.

Also, wenn Sie einige Updates auf einem tableA tun können Sie es in der Quellcodeverwaltung überprüfen, andere zu informieren, dass Sie daran arbeiten und das, nachdem Sie beenden können Sie Skript, das einzelne Objekt und speichern überprüfen Sie es in.

Um Skript ein einzelnes Objekt Sie können Sie die gleiche Option Alle Tasks -.> SQL-Skripts generieren ... und wählen Sie dann nur, dass ein Objekt

Das einzige Problem mit diesem Ansatz ist, wenn Sie die komplette Datenbank wiederherstellen mögen Sie kümmern sich um abhängige Objekte im Sinne nehmen müssen, dass das Top-Level-Objekt muss vor den, die von ihnen abhängig gestellt werden.

Ironischer, wenn Sie Skript die gesamte Datenbank in eine Datei werden die Objekte nicht in Bezug auf die Abhängigkeit bestellt, sondern basierend auf dem Erstellungsdatum. Das führt zu Fehlern, wenn Sie versuchen, es zu verwenden, um die komplette DB wiederherzustellen.

Am Ende haben wir Batchdatei erstellen, die jedes Objekt einzeln erstellen würde Aufruf „osql“

Und das alles funktionierte ziemlich gut zu dieser Zeit

Jetzt verwenden wir SQLCompare Pro und Tresore uns aus oder dass Ärger, aber wenn Sie Release machen nicht häufig kann man ohne sie leben.

Die anderen sind richtig, aber um eine vollständige Datenbank von Grund auf neu zu erstellen, müssen Sie ein ‚Gerät‘ in SQL erstellen, bevor Sie die Erstellung von Tabellen ausführen, und Verfahren Skripte ...

Verwenden Sie ADODB, da jeder nur über (wenn nicht alle) Windows-Box hat es das Skript auszuführen installiert.

Zur Hölle, könnte man sogar einen vbScript schreiben, die Ihre gesamte Datenbank aufzubauen ausführt. Jegliche Domain Tabellen, die Sie haben, müssen Sie auf die Identität Einsatz drehen erinnern, bevor Sie die Einzelteile der DB hinzuzufügen.

Ich bin offen für Quellcode-Sharing, wenn Sie es brauchen. Ich hatte vor genau dasselbe ein paar Jahre zu schreiben, und endete mit 3 Skripte, eine, die das Gerät erstellt, dann werden die Tabellen, dann werden die Prozeduren / Trigger und Domaindaten. Ich den Code schrieb das Standardskript und erlauben dem Benutzer zu analysieren, seine eigene Datenbank zu nennen, und Logins, etc .. Sie können nicht so weit gehen.

Hope, das hilft überhaupt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top