SQL Server – Datenbank Diagramme kopieren

Tuesday, 24 November 2009 17:59 von Toni Pohl

Datenbanken können recht groß und komplex werden – dafür sind leistungsfähige Datenbank-Systeme wie SQL Server ja da. Und weil ERP-Systeme und große Anwendungen gleich mal ein paar hundert bis tausend Tabellen beinhalten können, wurden die Datenbank-Diagramme erfunden, um Relationen zwischen den Tabellen grafisch abbilden zu können.

Erst mit der grafischen Darstellung kann sich ein Datenbank-Administrator und Entwickler ein (Teil-) Bild des Daten-Schemas machen – zu mindestens gilt das für mich. Ein kleines Datenbank-Diagramm in SQL Server kann zum Beispiel so aussehen:

sql-diagramm-1

Fesch. Nur, wie kann so ein Datenbank-Diagramm aus einer bestehenden Datenbank in eine andere Ziel-Datenbank übertragen werden? Gar nicht! Im Kontextmenü des SQL Servers findet sich dazu keine Möglichkeit.

sql-diagramm-2

Die einzige mir bekannte Möglichkeit war bislang das Kopieren der Datenbank und Nacharbeiten der Daten. “Nachzeichnen” stellt keine Option dar.

Jetzt habe ich aber aus aktueller Anforderung – die Diagramme sollten in eine neue Datenbank übertragen werden - einen brauchbaren Workaround zum Kopieren von Diagrammen in andere Datenbanken gefunden, und zwar auf codeplex.com Script SQL Server 2005 diagrams to a file von Craig Dunn. Eine sehr praktische Lösung.

Ab SQL Server 2005 werden Diagramme in [sysdiagrams] gespeichert. Diese Eigenschaft machen sich zwei kleine Stored Procedures zu nutze und können so ein bestimmtes Diagramm auslesen und scripten.

Hier die step-by-step Anleitung zum Scripten von Datenbank-Diagrammen (ab SQL Server 2005 lauffähig):

  1. Download der beiden Scripts von hier: Download source code (4.7KB).
  2. Das ZIP entpacken:
    sql-diagramm-3
  3. Die beiden Stored Procedures aus dem ZIP müssen in der Quell-DB ausgeführt werden (SQL-Admin-Rechte erforderlich). Dazu einfach Doppelklick auf die SQL-Dateien, Quell-Datenbank auswählen und ausführen:
    sql-diagramm-4
    Es müssen beide SP´s erstellt werden.
  4. Nun Aufrufen der SP Tool_ScriptDiagram2005 mit dem gewünschten Diagramm-Namen, z.B.:
    exec Tool_ScriptDiagram2005 'dg_EDVGeraete'
  5. Die Ausgabe erzeugt als Ausgabe (Messages) ein Script.
    Dieses mit STRG + A markieren und mit STRG + C kopieren:
     sql-diagramm-5
  6. In die Ziel-Datenbank wechseln (Neue Abfrage, use <meinedb>), das erzeugte Script mit STRG + V einfügen und mit F5 ausführen.
  7. Als Ergebnis – wenn alles klappt – erscheint das durch das Script neu erstellte Diagramm mit Datum und Uhrzeit im Namen – dieser kann natürlich wieder beliebig geändert werden. Tipp: Refresh des Diagramm-Knotens!
    sql-diagramm-6
    Fertig. Das Diagramm wurde gescriptet und neu in der Ziel-Datenbank erstellt.

Das coole Script hilft somit Aufwand zu minimieren und ermöglicht sehr einfach Datenbank-Diagramme in andere Datenbanken zu übernehmen. Für mich war´s wirklich praktisch, diesen Workaround zu verwenden, daher verdient das Script für mich eine “best practise”-Empfehlung.

Comments (1) -

>

6/28/2010 12:14:52 PM #

very handy .... funktioniert auch mit diagrammen mit mehreren duzend tabellen bestens ...  thx for sharing!

Peter Germany

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Bitte mitmachen!

SOS-Kinderdorf

About

atwork-blog informiert über
IT-News und liefert Tipps & Tricks für IT-Professionals und Developer. Die Inhalte sind Privatmeinung des jeweiligen Autors.

Follow us also on Twitter:
Do you follow me?
Martina Grom
Toni Pohl

Translate this!

Werbung

Werbung

Domain-Infos

Visits in myworldmaps.net

blog.atwork.at worldmap in Azure

Visits in ClustrMaps

Locations of visitors to this page

Kalender

<<  February 2012  >>
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
2728291234
567891011

View posts in large calendar

Werbung