{"id":55000052,"date":"2016-10-01T00:00:00","date_gmt":"2020-03-27T19:21:57","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=52"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"SQL_Server_Datenbanken_per_Skript_kopieren","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/SQL_Server_Datenbanken_per_Skript_kopieren\/","title":{"rendered":"SQL Server: Datenbanken per Skript kopieren"},"content":{"rendered":"<p><b>Die Beispieldatenbanken auf Basis des SQL Servers sollen Sie schnell und unkompliziert auf Ihrem System nutzbar machen k&ouml;nnen. Leider geht das nicht immer so einfach &#8211; zum Beispiel, weil verschiedene Versionen des SQL Servers uns einen Strich durch die Rechnung machen. Also stellen wir in diesem Artikel eine einfache L&ouml;sung vor, wie Sie die Beispieldatenbanken nach dem Download schnell nutzen k&ouml;nnen &#8211; n&auml;mlich indem wir diese als Skript bereitstellen, das die komplette Definition der Datenbank sowie die enthaltenen Daten anlegt.<\/b><\/p>\n<p>F&uuml;r die Nutzung der Beispieldatenbanken verwenden Sie optimalerweise neben Ihrer SQL Server-Installation, bei der es sich auch um die einfache LocalDB-Variante handeln kann, noch das kostenlos verf&uuml;gbar SQL Server Management Studio.<\/p>\n<p>Wenn ich die Beispieldatenbank f&uuml;r den Download vorbereite, habe ich diese bereits im SQL Server Management Studio eingebunden &#8211; in diesem Beispiel in der Version 2014. Hier kann ich dann im Objekt-Explorer unter <b>Datenbanken<\/b> die gew&uuml;nschte Datenbank ausw&auml;hlen (hier <b>Bestellverwaltung<\/b>), das Kontextmen&uuml; anzeigen und dort den Befehl <b>Tasks|Skripts generieren&#8230; <\/b>ausf&uuml;hren (siehe  Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_001.png\" alt=\"Hinzuf&uuml;gen der Verbindung\" width=\"549,6265\" height=\"388,8933\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Hinzuf&uuml;gen der Verbindung<\/span><\/b><\/p>\n<h2>Skript-Assistent starten<\/h2>\n<p>Dies &ouml;ffnet den Dialog aus Bild 2. Hier k&ouml;nnen Sie entweder die Option <b>Skripterstellung f&uuml;r gesamte Datenbank und alle Datenbankobjekte <\/b>beibehalten oder auf <b>Bestimmte Datenbankobjekte ausw&auml;hlen <\/b>wechseln und hier eine individuelle Auswahl festlegen. Bei unserer begrenzten Menge von Datenbankobjekten sind beide Methoden gleich schnell ausgef&uuml;hrt. Aber es gibt einen entscheidenden Unterschied:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_002.png\" alt=\"Auswahl der zu exportierenden Datenbankobjekte\" width=\"549,6265\" height=\"424,9611\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Auswahl der zu exportierenden Datenbankobjekte<\/span><\/b><\/p>\n<p>Wenn Sie <b>Bestimmte Datenbankobjekte ausw&auml;hlen <\/b>selektieren, werden, selbst wenn Sie dann alle Elemente selektieren, nur die <b>CREATE TABLE<\/b>-Statements f&uuml;r die einzelnen Tabellen (beziehungsweise <b>CREATE&#8230;<\/b>-Anweisungen f&uuml;r die &uuml;brigen Objekttypen) erstellt, aber kein <b>CREATE DATABASE<\/b> &#8211; Sie k&ouml;nnen mit dem erstellten Skript dann keine neue Datenbank generieren, sondern lediglich die Datenbankobjekte in eine bestehende Datenbank eintragen.<\/p>\n<p>Wenn Sie eine komplett neue Datenbank erstellen wollen, w&auml;hlen Sie die Option <b>Skripterstellung f&uuml;r gesamte Datenbank und alle Datenbankobjekte<\/b>.<\/p>\n<p>Einen Dialogschritt weiter unter <b>Skripterstellungsoptionen festlegen <\/b>finden Sie die Optionen aus Bild 3. Hier legen Sie zun&auml;chst als Ausgabetyp die Option <b>Skripts an einem bestimmten Speicherort speichern <\/b>aus. Darunter finden Sie reichlich M&ouml;glichkeiten, um das Ziel des Exports zu definieren.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_003.png\" alt=\"Festlegen der Optionen zum Exportieren der Datenbankobjekte\" width=\"549,6265\" height=\"514,344\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Festlegen der Optionen zum Exportieren der Datenbankobjekte<\/span><\/b><\/p>\n<p>Die erste Option geht davon aus, dass Sie die Definition aller Elemente in einer einzelnen Datei speichern wollen. Dazu geben Sie dann den gew&uuml;nschten Dateinamen an und ob eventuell bereits vorhandene Dateien gleichen Namens &uuml;berschrieben werden sollen. Au&szlig;erdem stellen Sie hier das Exportformat fest und w&auml;hlen dabei zwischen <b>Unicode-Text <\/b>und <b>ANSI-Text<\/b>.<\/p>\n<p>Vielleicht wollen Sie aber gar keine Datei anlegen, sondern sich das Skript erst einmal ansehen oder es in die Zwischen-ablage speichern Beides ist kein Problem, wenn Sie die zweite Option <b>In Zwischenablage speichern <\/b>oder die dritte Option <b>In neuem Abfragefenster speichern <\/b>selektieren.<\/p>\n<p>Wir w&auml;hlen letztere Version, um uns das Ergebnis zun&auml;chst anzusehen. Der Assistent liefert uns zur Unterst&uuml;tzung einen Bericht mit den Ergebnissen der Skripterstellung (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_004.png\" alt=\"Ergebnis des Exports\" width=\"549,6265\" height=\"319,3362\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ergebnis des Exports<\/span><\/b><\/p>\n<h2>Ergebnis ansehen<\/h2>\n<p>Nach dem Schlie&szlig;en des Assistenten k&ouml;nnen Sie zum SQL Server Management Studio zur&uuml;ckwechseln und finden dort ein neues Abfragefenster wie in Bild 5 vor. Das sieht schon recht gut aus &#8211; das Skript liefert die SQL-Anweisungen zum Erstellen der Tabellen unserer Datenbank. Wenn wir jedoch ein wenig weiter nach unten scrollen, stellen wir fest, dass dies leider alles ist: Neben ein paar weiteren Anweisungen zum &Auml;ndern einiger Felder in Fremdschl&uuml;sselfelder folgen keine weiteren Befehle. Damit erstellt das Skript zwar die gew&uuml;nschte Tabellenstruktur, f&uuml;llt die Tabellen aber nicht mit den Daten der in das Skript exportierten Datenbank. Au&szlig;erdem f&auml;llt auf, dass man auch die Datenbank noch selbst anlegen muss &#8211; die erste Anweisung des Skripts lautet <b>USE [Bestellverwaltung] <\/b>statt <b>CREATE DATABASE [Bestellverwaltung]<\/b>. Eine bestehende Datenbank dieses Namens ist also Voraussetzung f&uuml;r das Funktionieren des Skripts.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_005.png\" alt=\"Das fertige SQL-Skript\" width=\"549,6265\" height=\"385,2457\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Das fertige SQL-Skript<\/span><\/b><\/p>\n<h2>Anpassen der &#8220;Weiteren Einstellungen&#8221;<\/h2>\n<p>Doch wir haben noch nicht alle M&ouml;glichkeiten des Skript-Assistenten genutzt, denn wir haben die Schaltfl&auml;che <b>Erweitert <\/b>im Schritt <b>Skripterstellungsoptionen festlegen <\/b>ignoriert.<\/p>\n<p>Wenn wir den Vorgang nochmal starten und in diesem Schritt die erweiterten Optionen anzeigen lassen, erhalten wir den Dialog aus Bild 6. Hier finden Sie nun eine ganze Reihe Optionen, mit denen Sie das Aussehen des Exports sehr fein einstellen k&ouml;nnen. F&uuml;r uns sind hier die folgenden Optionen interessant:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_52_006.png\" alt=\"Optionen f&uuml;r das Erstellen des Skripts\" width=\"424,7115\" height=\"719,178\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Optionen f&uuml;r das Erstellen des Skripts<\/span><\/b><\/p>\n<p><b>Datentypen, f&uuml;r die ein Skript erstellt wird<\/b>: Legt fest, ob Sie nur die Daten, nur das Schema oder Schema und Daten exportieren wollen. Wir ben&ouml;tigen in diesem Fall Schema und Daten.<\/p>\n<p><b>DROP und CREATE als Skript<\/b>: Dies legt fest, ob zu jedem zu ber&uuml;cksichtigenden Datenbankobjekt eine <b>DROP<\/b>-Anweisung (zum L&ouml;schen), eine <b>CREATE<\/b>-Anweisung (zum Erstellen) oder beide angelegt werden sollen. Wir ben&ouml;tigen auf jeden Fall die <b>CREATE<\/b>-Anweisungen. Wenn Sie die Datenbankobjekte in eine bestehende Datenbank importieren wollen, die bereits Datenbankobjekte gleichen Namens enth&auml;lt, sollten Sie zus&auml;tzlich die <b>DROP<\/b>-Anweisungen hinzuf&uuml;gen. Sie k&ouml;nnen auch ein Skript erstellen, das lediglich Datenbankobjekte l&ouml;scht!<\/p>\n<p>Mit <b>Skripterstellung f&uuml;r Serverversion <\/b>k&ouml;nnen Sie eine Zielversion angeben. Hier sind sie aus verst&auml;ndlichen Gr&uuml;nden auf alle zum Zeitpunkt der Ver&ouml;ffentlichung dieser Version von SQL Server Management Studio verf&uuml;gbaren Versionen des SQL Servers beschr&auml;nkt.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000052\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000052?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000052\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"17c7102c71\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Beispieldatenbanken auf Basis des SQL Servers sollen Sie schnell und unkompliziert auf Ihrem System nutzbar machen k&ouml;nnen. Leider geht das nicht immer so einfach &#8211; zum Beispiel, weil verschiedene Versionen des SQL Servers uns einen Strich durch die Rechnung machen. Also stellen wir in diesem Artikel eine einfache L&ouml;sung vor, wie Sie die Beispieldatenbanken nach dem Download schnell nutzen k&ouml;nnen &#8211; n&auml;mlich indem wir diese als Skript bereitstellen, das die komplette Definition der Datenbank sowie die enthaltenen Daten anlegt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662016,66052016,44000029,44000024,44000023,44000006],"tags":[],"yst_prominent_words":[],"class_list":["post-55000052","post","type-post","status-publish","format-standard","hentry","category-662016","category-66052016","category-Access_programmieren","category-Berichte_und_Reporting","category-PowerApps","category-SQL_Server_und_Co"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000052"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000052\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000052"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}