Exemplarische Vorgehensweise: Vergleichen der Schemas einer Datenbank und eines Datenbankprojekts

In dieser exemplarischen Vorgehensweise vergleichen Sie unter Verwendung von Team Edition for Database Professionals das Schema eines Datenbankprojekts mit dem Schema einer Datenbank.

Je nach Verwendung des Datenbankprojekts und der Datenbank durch das Team können Sie im Anschluss die Änderungen am Schema in die eine oder andere Richtung kopieren. Nachfolgend finden Sie einige typische Szenarien:

  • Das Projekt ist die Quelle und die Datenbank das Ziel. Mit einem Datenbankprojekt können Sie eine Datenbank entwickeln oder verwalten. Nachdem Sie die Schemaänderungen im Projekt vorgenommen haben, kopieren Sie diese in die Datenbank, die auf einem Stagingserver gehostet wird. Im Anschluss kann die Datenbank vom Team auf einem Produktionsserver bereitgestellt werden.

    Durch den Schemavergleich in dieser exemplarischen Vorgehensweise wird aus den Schemaunterschieden ein Datendefinitionssprache-Skript generiert. Mit diesem Skript können Sie das Datenbankprojekt anschließend teilweise oder vollständig auf die Datenbank anwenden. Weitere Informationen finden Sie unter Weitergeben von Änderungen vom Projekt an die Datenbank.

  • Die Datenbank ist die Quelle und das Projekt das Ziel. Möglicherweise wird im Schema einer Produktionsdatenbank ein Fehler gefunden, oder das Schema ist nicht mehr aktuell und muss erneuert werden. Daraufhin muss die Datenbank möglicherweise kurzfristig aktualisiert werden. Um die Synchronizität von Projekt und Datenbank zu gewährleisten, können Sie dann die durch das kurzfristige Update verursachten Schemaänderungen in das Datenbankprojekt importieren. Weitere Informationen finden Sie unter Gewusst wie: Importieren von Aktualisierungen aus einer Datenbank in das Datenbankprojekt.

Zu den Aufgaben in dieser exemplarischen Vorgehensweise gehören:

Setupphase

  1. Erstellen Sie ein Datenbankprojekt. Zu Beginn weist das neue Projekt noch keinen Inhalt auf.

  2. Vergleichen Sie das Datenbankschema mit dem Projektschema. In diesem Vergleich legen Sie das Datenbankprojekt als Quelle und die Datenbank als Ziel fest. Nach Abschluss des Vergleichs können Sie Schemaaktualisierungen mit dieser Konfiguration vom Datenbankprojekt in die Datenbank schreiben.

    Hinweis

    Sie können auch Änderungen von einer Quelldatenbank an ein Zieldatenbankprojekt weitergeben. Weitere Informationen finden Sie unter Gewusst wie: Importieren von Aktualisierungen aus einer Datenbank in das Datenbankprojekt.

  3. Importieren Sie das Datenbankschema in das Projekt. Die Datenbank und das Projekt weisen nun identische Schemas auf.

Produktionsphase

  1. Fügen Sie der Datenbank eine Tabelle hinzu. Sie fügen die Tabelle InternationalShippers hinzu, die drei Spalten aufweist.

  2. Vergleichen Sie die beiden Schemas erneut. Die Tabelle InternationalShippers wird im Datenbankprojekt als neues Element angezeigt.

  3. Geben Sie die Änderungen vom Projekt an die Datenbank weiter. Sie können nun die neue Version der Tabelle InternationalShippers an die Datenbank Northwind weitergeben. Durch dieses Verfahren würden Teile der Beispieldatenbank Northwind überschrieben.

Vorbereitungsmaßnahmen

Um die exemplarische Vorgehensweise nachzuvollziehen, benötigen Sie:

  • Microsoft SQL Server 2000 oder Microsoft SQL Server 2005

  • Microsoft Visual Studio 2005 mit Team Edition for Database Professionals 

  • Die Datenbank Northwind

Setupphase

Erstellen Sie ein Datenbankprojekt.

So erstellen Sie ein Datenbankprojekt

  1. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

    Das Dialogfeld Neues Projekt wird angezeigt.

  2. Erweitern Sie unter Projekttypen den Eintrag Datenbankprojekte, und klicken Sie auf Microsoft SQL Server.

  3. Klicken Sie unter Vorlagen auf SQL Server 2005.

  4. Geben Sie im Feld Name den Namen Northwind_Project ein, und klicken Sie auf OK.

    Northwind_Project wird geöffnet und im Projektmappen-Explorer angezeigt. Das Projekt ist leer.

    Hinweis

    Sie können auch Projekte erstellen, die nicht leer sind, indem Sie Team Edition for Database Professionals verwenden. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Datenbankprojekten.

Vergleichen des Datenbankschemas mit dem Projektschema

So vergleichen Sie die beiden Schemas

  1. (Optional) Konfigurieren Sie Optionen für den Schemavergleich. Weitere Informationen finden Sie unter Optionen (Datenbanktools/Schemavergleich) und unter Gewusst wie: Festlegen von Optionen für das Vergleichen von Datenbankschemas.

  2. Zeigen Sie im Menü Daten auf Schemavergleich, und klicken Sie dann auf Neuer Schemavergleich.

    Das Dialogfeld Neuer Schemavergleich wird angezeigt. Unter Quellschema wird das Projekt Northwind_Project angezeigt.

  3. Stellen Sie unter Zielschema sicher, dass Sie auf Datenbank geklickt haben, und klicken Sie auf die Datenbank Northwind.

    Hinweis

    Wenn die Liste unter Datenbank leer ist, klicken Sie auf Neue Verbindung. Stellen Sie im Dialogfeld Verbindungseigenschaften eine Verbindung mit dem Datenbankserver her, der die Datenbank Northwind enthält, und klicken Sie auf OK. Wenn die Liste unter Datenbank nicht leer ist und Sie eine Verbindung mit der Datenbank Northwind mit SQL Server-Authentifizierung herstellen, wird das Dialogfeld Mit SQL Server verbinden angezeigt. Sie müssen Ihre Anmeldeinformationen angeben, um eine Verbindung mit der Datenbank herzustellen.

  4. Klicken Sie im Dialogfeld Neuer Schemavergleich auf OK.

    Das Schema der Datenbank Northwind wird mit dem Schema des Projekts Northwind_Project verglichen. Die Ergebnisse des Vergleichs werden im Fenster Schemavergleich angezeigt. Die Aktualisierung wird für jedes Objekt in der Datenbank Northwind, das nicht im Projekt Northwind_Project vorhanden ist, als Ablegen aufgeführt.

Importieren des Datenbankschemas in das Projekt

So importieren Sie das Datenbankschema

  1. Klicken Sie im Menü Ansicht auf Schemaansicht.

    Die Schemaansicht wird geöffnet, und das Schema des Projekts Northwind_Project wird angezeigt.

  2. Klicken Sie mit der rechten Maustaste auf das Projekt Northwind_Project, und klicken Sie auf Datenbankschema importieren.

    Der Datenbankimport-Assistent wird geöffnet.

  3. Klicken Sie unter Quelldatenbankverbindung auf die Datenbank Northwind.

  4. Klicken Sie auf Fertig stellen.

    Das Schema der Datenbank wird in das Projekt importiert. Die beiden Schemas sind jetzt identisch.

    Hinweis

    Das Datenbankprojekt erbt viele Eigenschaften von der Datenbank Northwind. Um diese Eigenschaften anzuzeigen, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Northwind_Project, und klicken Sie anschließend auf Eigenschaften. Zu den importierten Einstellungen gehören auch die Standardsortierreihenfolge auf der Seite Projekteinstellungen und die sonstigen Einstellungen auf der Seite <ui>Datenbankeigenschaften</ui>.

  5. Um zu überprüfen, ob die beiden Schemas identisch sind, klicken Sie auf der Symbolleiste Schemavergleich auf Aktualisieren.

    Die Schemas werden erneut verglichen. Für identische Schemaobjekte wird als Aktualisierungsaktion Überspringen angezeigt.

Produktionsphase

Hinzufügen einer Tabelle zum Datenbankprojekt

So fügen Sie dem Projekt eine Tabelle hinzu

  1. Klicken Sie im Menü Ansicht auf Schemaansicht.

    Die Schemaansicht wird geöffnet, und das Schema des Projekts Northwind_Project wird angezeigt.

  2. Erweitern Sie in der Schemaansicht den Knoten Northwind_Project.

  3. Klicken Sie mit der rechten Maustaste auf Tabellen, zeigen Sie auf Hinzufügen, und klicken Sie auf Tabelle.

    Das Dialogfeld Neues Element hinzufügen – Northwind_Project wird geöffnet.

  4. Klicken Sie unter Vorlagen auf Tabelle.

  5. Geben Sie im Feld Name die Bezeichnung InternationalShippers ein, und klicken Sie auf Hinzufügen.

    Die Tabelle InternationalShippers wird dem Projekt Northwind_Project hinzugefügt. Die Tabellendefinition wird im Transact-SQL (T-SQL)-Editor angezeigt.

  6. Ändern Sie das SQL-Skript in InternationalShippers.table.sql wie folgt:

    CREATE TABLE [dbo].[InternationalShippers]
    (
    [ShipperID] [int] NOT NULL IDENTITY(1,1),
    [CompanyName] [nvarchar] (40) NOT NULL,
    [Region] [nvarchar] (40) NOT NULL,
    [Phone] [nvarchar] (24) NULL
    ) ON [PRIMARY]
    
  7. Klicken Sie auf InternationalShippers.table.sql speichern.

  8. Klicken Sie in der Schemaansicht mit der rechten Maustaste auf die Tabelle InternationalShippers, und klicken Sie anschließend auf Datei im Projektmappen-Explorer anzeigen.

    Die Datei InternationalShippers.sql wird im Projektmappen-Explorer hervorgehoben.

  9. Drücken Sie F4.

    Das Eigenschaftenfenster mit den Eigenschaften der Datei InternationalShippers.table.sql wird angezeigt. Beachten Sie, dass Build Action auf Build festgelegt ist. Durch Festlegen der Build Action-Eigenschaft auf Build geben Sie an, dass die Datei die Definition für ein Datenbankobjekt enthält und analysiert und validiert werden soll.

Vergleichen der beiden Schemas

So vergleichen Sie die beiden Schemas

  1. Klicken Sie auf die Registerkarte Schemavergleich, um die Ergebnisse des letzten Vergleichs erneut anzuzeigen.

  2. Klicken Sie auf der Symbolleiste Schemavergleich auf Aktualisieren.

    Das Schema der Datenbank Northwind wird mit dem Schema des geänderten Projekts Northwind_Project verglichen. Die Ergebnisse des Vergleichs werden im Fenster Schemavergleich angezeigt. In der Spalte Northwind_Project wird die Tabelle [dbo].[InternationalShippers] angezeigt.

    Der Status der neuen Tabelle ist Neu und die Aktualisierungsaktion Erstellen. Wenn Sie zu diesem Zeitpunkt Änderungen weitergäben, würde die Tabelle in der Zieldatenbank erstellt. Weitere Informationen erhalten Sie im folgenden Verfahren:

Weitergeben von Änderungen vom Projekt an die Datenbank

In diesem Verfahren geben Sie die neue Tabelle InternationalShippers an die Datenbank Northwind weiter. Weitere Informationen finden Sie unter Gewusst wie: Synchronisieren von Datenbankschemas.

Warnung

Dieses Verfahren wird nur zur Veranschaulichung beschrieben. Es wird nicht empfohlen, dieses Verfahren auszuführen, da andernfalls Teile der Beispieldatenbank Northwind überschrieben würden. Dieses Verfahren sollte nur verwendet werden, wenn Sie keine Originalversion von Northwind beibehalten müssen. Als Alternative können Sie das Verfahren für eine Kopie der Datenbank Northwind ausführen.

So geben Sie Änderungen an die Zieldatenbank weiter

  • Klicken Sie im Fenster Schemavergleich auf Updates schreiben.

    Die im Fenster Schemavergleich aufgeführten Aktualisierungen einschließlich der Aktion Erstellen für die Tabelle InternationalShippers werden ausgeführt. Durch diese Synchronisierung wird das Schema der Zieldatenbank geändert, sodass es dem Schema des Quelldatenbankprojekts entspricht.

    Hinweis

    Während der Aktualisierung können Sie den Vorgang abbrechen, indem Sie das Menü Daten öffnen, auf Schemavergleich zeigen und dann auf Schreiben auf Ziel beenden klicken.

    Warnung

    Da einige Schemaänderungen nicht ausgeführt werden können, gehen möglicherweise Daten verloren, wenn Sie eine Aktualisierung abbrechen. Als Vorbereitung für das erneute Erstellen könnte beispielsweise eine Tabelle in der Zieldatenbank gelöscht worden sein. Wenn Sie die Aktualisierung in diesem Moment abbrechen, kann die Tabelle verloren gehen. Wenn diese Art des Datenverlusts auftritt, sollten Sie die Schemas erneut vergleichen.

Siehe auch

Aufgaben

Gewusst wie: Vergleichen der Schemas von zwei Datenbanken
Gewusst wie: Vergleichen der Daten von zwei Datenbanken

Konzepte

Übersicht über die Terminologie von Team Edition for Database Professionals

Weitere Ressourcen

Vergleichen von Datenbankschemas
Vergleichen von Datenbankdaten