Kostenloses Tool

SQL Server als ER-Diagramm

Fügen Sie ein T-SQL-Skript aus SQL Server Management Studio ein, samt GO-Zeilen, [dbo]-Klammern und WITH-CHECK-Constraints, und erhalten Sie ein ER-Diagramm mit einem Rahmen pro Schema, wenn das Skript mehrere Schemas nutzt. Probieren Sie das Beispiel für Personal und Gehalt mit Abteilungen, Positionen und Beschäftigten aus, die an eine Führungskraft berichten.

Beispielausgabe

Beispieldiagramm aus einem SQL Server-Beispiel
Beispiel ausprobierenPersonal und Gehalt

So funktioniert es

  1. T-SQL-Skript einfügen oder ablegen

    Eine Datei aus Generate Scripts in SSMS, die Ausgabe von Script Table as, ein EF-Core-Migrationsskript oder handgeschriebene CREATE-TABLE-Anweisungen, mit oder ohne Semikolons.

  2. Tabellen und Fremdschlüssel ansehen

    Jeder per ALTER TABLE ergänzte Fremdschlüssel wird zu einer Linie zwischen den beiden Spalten, und liegen Tabellen in dbo, hr und weiteren Schemas, bekommt jedes Schema einen eigenen Rahmen.

  3. In Archboard öffnen

    Speichern Sie es als neues Diagramm, um es umzuordnen, zu kommentieren, per Link zu teilen oder als SVG und PNG zu exportieren. Für die Registrierung genügt ein Google- oder GitHub-Konto.

Datenbankschema in SSMS als Skript ausgeben

Klicken Sie in SQL Server Management Studio im Objekt-Explorer mit der rechten Maustaste auf die Datenbank und wählen Sie:

  1. Wählen Sie die Tabellen aus, lassen Sie unter Advanced die Option Types of data to script auf Schema only und speichern Sie das Skript als .sql-Datei. Für eine einzelne Tabelle klicken Sie diese mit der rechten Maustaste an und wählen Script Table as, dann CREATE To.

    Tasks > Generate Scripts

T-SQL-Syntax im Skript

So wird jedes Konstrukt eines T-SQL-Skripts behandelt:

[dbo].[Employees]
Gelesen. Namen in eckigen Klammern oder doppelten Anführungszeichen werden ohne Rücksicht auf Groß- und Kleinschreibung zugeordnet, und dbo gilt als Standardschema.
GO
Ein Batch-Trenner, wenn es allein in einer Zeile steht, mit oder ohne Anzahl wie GO 2. Anweisungen ohne Semikolon werden ebenfalls getrennt.
IDENTITY(1,1)
Nicht angezeigt: Die Spalte behält ihren Typ, etwa int; Startwert und Schrittweite stehen nicht auf der Karte.
WITH CHECK ADD CONSTRAINT
Gelesen. Die Fremdschlüssel, die SSMS nach den Tabellen mit WITH CHECK oder WITH NOCHECK hinzufügt, werden zu Beziehungslinien.
ALTER TABLE … CHECK CONSTRAINT
Übersprungen. Diese Anweisung aktiviert nur einen bereits vorhandenen Constraint und fügt dem Diagramm nichts hinzu.
ON [PRIMARY]
Übersprungen, zusammen mit TEXTIMAGE_ON und Indexoptionen wie WITH (PAD_INDEX = OFF, …).
NVARCHAR(MAX)
Als Spaltentyp angezeigt, wie jeder andere Typ mit Länge oder Genauigkeit.
IF NOT EXISTS … BEGIN … END
Ausgepackt. Das CREATE TABLE in den Existenzprüfungen, die idempotente EF-Core-Skripte und SSMS schreiben, wird wie jedes andere gelesen.

Was ein T-SQL-Diagramm nicht zeigt

  • Gespeicherte Prozeduren, Views, Funktionen und Trigger. Jeder Rumpf wird bis zum nächsten GO übersprungen und gezählt; eine Tabelle, die in einer Prozedur angelegt wird, erscheint also nicht.
  • Temporäre Tabellen wie #staging und ##shared sowie Tabellenvariablen. Sie existieren nur während einer Sitzung oder eines Batches: Temporäre Tabellen werden ausgelassen und gezählt, Tabellenvariablen ohne Zählung übersprungen.
  • Erweiterte Eigenschaften, auch MS_Description-Texte, die mit sp_addextendedproperty hinzugefügt wurden. Beschreibungen werden nicht gelesen.
  • Alles aus einem laufenden SQL Server oder einer Azure-SQL-Datenbank. Es wird keine Verbindung aufgebaut; Zeilenzahlen, Indexnutzung und in SSMS gespeicherte Diagramme erscheinen nicht.

Fragen zu SQL Server

Welche Skriptoptionen in SSMS funktionieren am besten?

Die Standardeinstellungen von Generate Scripts funktionieren: Tabellen kommen als CREATE TABLE heraus, Fremdschlüssel folgen als ALTER TABLE … WITH CHECK ADD CONSTRAINT und werden gelesen. Wenn Sie Check for object existence einschalten, wird jedes Objekt in eine IF-NOT-EXISTS-Prüfung gehüllt; auch das wird problemlos gelesen. Daten mit zu skripten macht die Datei nur größer, denn Zeilen werden übersprungen.

Muss ich die GO-Zeilen entfernen?

Nein. GO wird wie in SSMS und sqlcmd als Batch-Trenner gelesen, auch mit Wiederholungszahl. Skripte ohne GO und ohne Semikolons funktionieren ebenfalls: Bei jedem CREATE, ALTER oder ähnlichen Schlüsselwort beginnt eine neue Anweisung, während Wendungen wie ON DELETE SET NULL zusammenbleiben.

Wie werden dbo und andere Schemas dargestellt?

Nutzt ein Skript mehr als ein Schema, wird jedes Schema mit Tabellen zu einem Rahmen; [hr].[Employees] liegt dann in einem hr-Rahmen neben dem dbo-Rahmen, und Fremdschlüssel zwischen Schemas führen über die Rahmen hinweg. Namen werden ohne Rücksicht auf Groß- und Kleinschreibung zugeordnet, wie unter der Standardsortierung von SQL Server.

Funktioniert es mit Azure SQL Database?

Ja. Azure SQL Database und Azure SQL Managed Instance verwenden T-SQL; Skripte, die Sie dort in SSMS erzeugen, werden genauso gelesen, ebenso Migrationsskripte aus EF Core. Verbinden Sie SSMS mit dem Azure-Server und nutzen Sie Generate Scripts wie bei jedem anderen SQL Server.

Wird etwas gespeichert, wenn ich ein Skript einfüge?

Die Vorschau wird nicht gespeichert. Wenn Sie In Archboard öffnen wählen, wird das gezeichnete Diagramm mit Tabellenkarten, Spaltennamen und Typen, Schema-Rahmen und Linien als neues Diagramm in Ihrem Workspace gespeichert. Spätere Änderungen in SQL Server aktualisieren es nicht.

Ist das Tool für SQL-Server-ER-Diagramme kostenlos?

Ja. Für das Einfügen eines Skripts und die Ansicht des Diagramms brauchen Sie kein Konto. Zum Öffnen des Diagramms in Archboard genügt ein kostenloses Konto.

In einer Minute ein Canvas öffnen

Melden Sie sich mit Google oder GitHub an. Kostenlos für einen Sitzplatz. Upgrade, wenn das Team dazukommt.