By Frank Kalis
Original von Tibor Karaszi; deutsche Übersetzung von Frank Kalis
Übersicht
Im folgenden finden Sie verschiedene Techniken und Produkte, die DDL Skripte für Ihre Datenbankobjekte und/oder INSERT Statements für Ihre Daten generieren können.
Zusatzinformation
Ich empfehle, dass Sie DDL wie Quellcode behandeln. Typischerweise bedeutet dies, dass Sie Ihr DDL in Dateiform aufbewahren und generell ein Quellcodeverwaltungsprogramm verwenden, dass Sie Objekte ein- und auschecken lässt und auch in der Lage ist, verschiedene Versionsstände Ihres Datenbankschemas zu verwalten.
Enterprise Manager (nur DDL)
Klicken Sie mit der rechten Maustaste auf eine Datenbank oder ein Datenbankobjekt, wählen 'Alle Tasks', 'SQL Skript generieren'. EM ist in der Lage, Skripte für alle Objekte einer Datenbank, inklusive Constraints, Benutzer etc. zu generieren. Sie können wählen, ob alles in einer einzigen Datei gespeichert werden soll oder ob für jedes Objekt eine eigene Datei erzeugt werden soll. Leider können Sie die zu generierenden Skripte nicht an Ihre speziellen Wünsche anpassen. Beispielsweise wollen Sie nicht für jede String Spalte die COLLATE Klausel angeben. Aus diesem Grund werden Sie häufig Suchen und Ersetzen nachdem Sie Skripte mit dem Enterprise Manager generiert haben.
Query Analyzer (nur DDL)
Im Objekt Browser des Query Analyzers (QA), können Sie ebenfalls mit der rechten Maustaste auf ein Objekt klicken und ein Skript generieren lassen. QA bietet die nette Option, dass Sie das zu generierende Skript anpassen können. Hierfür wählen Sie 'Extras', 'Optionen','Skript'. Leider generiert QA nur ein Skript für ein Objekt gleichzeitig.
Das SQLDMO API (nur DDL)
Der Quellcode, den der Enterprise Manager und der Query Analyzer, zur Generierung von Skripten benutzt steht uns in Form des SQLDMO APIs zur Verfügung. Dies bedeutet, dass Sie Ihre eigenen Applets zum Erstellen von Skripten schreiben können, die Skripte genauso erzeugen, wie Sie es möchten. Nachfolgend finden Sie ein einfaches Beispiel in Visual Basic, welches ein Skript für alle Objekte einer Datenbank erzeugt:
Dim oSS As SQLDMO.SQLServer
Dim oDb As SQLDMO.Database
Dim oT As SQLDMO.Transfer
Dim sS As String
Sub Script()
Set oSS = New SQLDMO.SQLServer
Set oT = New SQLDMO.Transfer
oSS.Connect "server", "login", "password" 'Connect to the server
Set oDb = oSS.Databases("pubs") 'Use a DB
oT.CopyAllTables = True
oDb.ScriptTransfer oT, SQLDMOXfrFile_SingleFile, "C:\pubs.sql"
End Sub
Genauso verwenden Sie DMO, um Skripte pro Objekt zu erstellen. Erzeugen Sie einfach eine Instanz dieses Objektes und benutzen anschliessend die script Methode des Objektes.
Scptxfr.exe (nur DDL)
Dieses Tool wird mit dem SQL Server ausgeliefert. Weitere Informationen finden Sie hier
http://www.support.microsoft.com/?id=220163
QALite von Rac4sql (DDL und Daten)
Dieses freie Tool generiert Skripte für DDL und Daten. Enthält zahlreiche weitere Features
http://rac4sql.net/qalite_main.asp
SQL Scripter (nur Daten)
Dieses einfach zu bedienende Tool generiert Skripte für Daten in einer existierenden Tabelle, einem View oder einer Abfrage. Bis dato ist es frei erhältlich
http://www.sqlscripter.com
Apex SQL Script von ApexSQL (nur Daten)
Zur Zeit kann dieses Tool nur INSERT Statements für Daten generieren. Als dieser Artikel geschrieben wurde, existierten Pläne, auch DDL erzeugen zu lassen. Das Tool enthält Optionen zum Umgang mit IDENTITY Spalten und kann mit sämtlichen SQL Server Datentypen umgehen.
http://www.apexsql.com
Scripting Tools von Narayana Vyas Kondreddi (DDL und Daten)
Nachfolgend finden eine Stored Procedure, die INSERT Statements für eine Tabelle generiert, sowie eine COM Komponente, die DDL erzeugt. Beide Tools sind frei.
http://vyaskn.tripod.com/code.htm
Den Originalartikel finden Sie hier