Exemplarische Vorgehensweise: Erstellen und Bereitstellen einer Datenbank, die auf eine andere Datenbank verweist

In dieser exemplarischen Vorgehensweise erstellen Sie ein Datenbankprojekt für eine Datenbank, die auf eine andere Datenbank verweist. Die Datenbank, auf die das Projekt verweist, wird ebenfalls mit Visual Studio Premium verwaltet, befindet sich jedoch in einer anderen Projektmappe. Dieser Ansatz emuliert das häufige Szenario, dass unterschiedliche Entwickler verschiedene Datenbanken verwalten oder ein Entwickler die Datenbank, die das Ziel eines Verweises ist, nicht bereitstellen kann.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Erstellen eines Datenbankprojekts

  • Verweisen auf eine DBSCHEMA-Datei, die von einem anderen Datenbankprojekt erzeugt wurde

  • Definieren von Variablen und ihrer Werte für das Datenbankprojekt, auf das Sie verweisen

  • Bereitstellen des Datenbankprojekts in der isolierten Entwicklungsumgebung

Vorbereitungsmaßnahmen

Sie müssen Visual Studio installiert haben. Außerdem müssen Sie die Exemplarische Vorgehensweise: Erstellen und Bereitstellen einer neuen der Versionskontrolle unterliegenden Datenbank abgeschlossen und die resultierende Datenbank in der isolierten Entwicklungsumgebung bereitgestellt haben. Um das Projekt unter Versionskontrolle zu stellen, müssen Sie eine Software zur Versionskontrolle wie Visual Studio Team Foundation Server installiert haben.

So erstellen Sie das Datenbankprojekt

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

    Das Dialogfeld Neues Projekt wird angezeigt.

  2. Erweitern Sie unter Installierte Vorlagen den Knoten Datenbank, und klicken Sie dann auf SQL Server.

    Tipp

    Navigieren Sie bei Verwendung von Visual Studio Professional stattdessen zu Installierte Vorlagen, erweitern Sie den Knoten Datenbank, erweitern Sie den Knoten SQL Server, und klicken Sie anschließend auf Erweitert.

  3. Klicken Sie in der Liste der Vorlagen auf SQL Server 2008-Datenbankprojekt.

  4. Geben Sie im Feld Name den Namen OrdersDB ein.

  5. Aktivieren Sie das Kontrollkästchen Projektmappenverzeichnis erstellen.

  6. Übernehmen Sie die Standardwerte für Speicherort, Projektmappenname und Zur Quellcodeverwaltung hinzufügen, und klicken Sie auf OK.

    Tipp

    Sie könnten die Projektmappe an dieser Stelle in der Versionskontrolle hinzufügen. In dieser exemplarischen Vorgehensweise fügen Sie im letzten Vorgang der Versionskontrolle die Projektmappe hinzu.

    Das neue Datenbankprojekt mit dem Namen ProductsDB wird im Projektmappen-Explorer angezeigt.

  7. Klicken Sie im Menü Ansicht auf Schemaansicht der Datenbank.

    Die Schemaansicht wird angezeigt, wenn dies nicht bereits der Fall ist.

    Fügen Sie anschließend die Tabellen im Datenbankprojekt hinzu.

So fügen Sie im Datenbankprojekt die Tabelle OrderItems hinzu

  1. Klicken Sie in der Schemaansicht mit der rechten Maustaste auf das Projekt "OrdersDB", zeigen Sie auf Hinzufügen, und klicken Sie auf Tabelle.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  2. Klicken Sie in Vorlagen auf Tabelle.

    Tipp

    In der Liste Kategorien können Sie auf Tabellen und Ansichten klicken, um die Vorlage für eine Tabelle leichter zu finden.

  3. Geben Sie unter Name den Namen "OrderItems" als Namen für die neue Tabelle ein.

  4. Klicken Sie auf Hinzufügen, um die Tabelle dem Datenbankprojekt hinzuzufügen.

    Im Projektmappen-Explorer wird im Datenbankprojekt die neue Datei für die Tabelle angezeigt. In der Schemaansicht wird das neue Tabellenobjekt angezeigt. Der Transact-SQL-Editor wird geöffnet und zeigt die Definition für die neue Tabelle an.

  5. Ändern Sie im Transact-SQL-Editor die Tabellendefinition entsprechend dem folgenden Beispiel:

    -- =============================================
    -- Create OrderItems table
    -- =============================================
    CREATE TABLE [dbo].[OrderItems]
    (
    [POID] INT NOT NULL,
    [ItemID] INT NOT NULL,
    [ProductID] INT NOT NULL,
    [Quantity] INT NOT NULL,
    [Price] FLOAT NOT NULL,
    [Notes] NVARCHAR(75) NULL
    ) ON [PRIMARY]
    
  6. Klicken Sie im Menü Datei auf dbo.OrderItems.table.sql speichern.

  7. Erweitern Sie in der Schemaansicht den Knoten dbo.OrderItems.

  8. Erweitern Sie in der Tabelle dbo.OrderItems den Knoten Spalten.

    Es werden die Spalten angezeigt, die Sie im Transact-SQL-Editor definiert haben.

    Fügen Sie anschließend der Tabelle OrderItems einen Primärschlüssel hinzu.

So fügen Sie der Tabelle OrderItems einen Primärschlüssel hinzu

  1. Klicken Sie in der Schemaansicht mit der rechten Maustaste auf dbo.OrderItems, zeigen Sie auf Hinzufügen, und klicken Sie anschließend auf Primärschlüssel.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  2. Geben Sie unter Name den Namen "PK_OrderItems" als Namen für den neuen Primärschlüssel ein.

  3. Klicken Sie auf Hinzufügen, um den Primärschlüssel hinzuzufügen.

    Im Projektmappen-Explorer wird im Datenbankprojekt die neue Datei für den Primärschlüssel angezeigt. In der Schemaansicht wird das neue Primärschlüsselobjekt angezeigt. Der Transact-SQL-Editor wird geöffnet und zeigt die Definition für den neuen Schlüssel an.

    Tipp

    Im Symbol für den Primärschlüssel wird ein roter Kreis mit einem weißen "x" angezeigt, um anzugeben, dass die Standarddefinition einen Fehler enthält. Dieses Verhalten entspricht den Erwartungen, da die Standarddefinition sich auf die Spalte "column_1" bezieht, die nicht vorhanden ist.

  4. Ändern Sie im Transact-SQL-Editor die Definition des Primärschlüssels entsprechend dem folgenden Beispiel:

    -- =============================================
    -- Create PK_OrderItems primary key 
    -- =============================================
    ALTER TABLE [dbo].[OrderItems] 
    ADD CONSTRAINT [PK_OrderItems] 
    PRIMARY KEY CLUSTERED  ([POID], [ItemID]) 
    ON [PRIMARY]
    
  5. Klicken Sie im Menü Datei auf dbo.OrderItems.PK_OrderItems.pkey.sql speichern.

    Der Fehler wird nicht mehr im Symbol angezeigt, d. h., dass die Definition des Primärschlüssels jetzt gültig ist.

    Fügen Sie anschließend den datenbankübergreifenden Verweis hinzu.

So fügen Sie eine Ansicht hinzu, die auf eine Tabelle in einer anderen Datenbank verweist

  1. Klicken Sie in der Schemaansicht mit der rechten Maustaste auf den Knoten Ansichten, zeigen Sie auf Hinzufügen, und klicken Sie anschließend auf Ansicht.

  2. Geben Sie unter Name den Namen "ItemDetailsView" als Namen für die neue Ansicht ein, und klicken Sie anschließend auf Hinzufügen.

    Im Projektmappen-Explorer wird im Datenbankprojekt die neue Ansicht für die Tabelle angezeigt. In der Schemaansicht wird das neue Ansichtsobjekt angezeigt. Der Transact-SQL-Editor wird geöffnet und zeigt die Definition für die neue Ansicht an.

    Tipp

    In der Schemaansicht wird im Symbol für die Ansicht ein roter Kreis mit einem weißen "x" angezeigt, um anzugeben, dass die Standarddefinition einen Fehler enthält. Dieses Verhalten entspricht den Erwartungen, da die Standarddefinition auf die Tabelle oder Ansicht "[sometableview" verweist, die nicht vorhanden ist.

  3. Ändern Sie im Transact-SQL-Editor die Tabellendefinition entsprechend dem folgenden Beispiel:

    -- =============================================
    -- Create ItemDetailsView view
    -- =============================================
    CREATE VIEW [dbo].[ItemDetailsView]
    AS 
    SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], 
           O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O
     INNER JOIN [ProductsDB].[dbo].[Products] AS P
            ON P.[ProductID] = O.[ProductID]
    
  4. Klicken Sie im Menü Datei auf dbo.ItemDetailsView.sql speichern.

  5. Klicken Sie im Menü Ansicht auf Fehlerliste.

    In der Fehlerliste werden sechs Fehler angezeigt. Die Fehler treten auf, weil Visual Studio Premium nicht überprüfen kann, ob die Datenbank, auf die Sie verweisen, auf dem Zielserver vorhanden ist, wenn Sie das Datenbankprojekt bereitstellen. Diese Bedingung sollte beachtet werden, da Sie an mehreren Zielorten bereitstellen können. Um die Fehler zu beheben, definieren Sie im nächsten Schritt einen datenbankübergreifenden Verweis.

So definieren Sie einen datenbankübergreifenden Verweis

  1. Erweitern Sie im Projektmappen-Explorer das Projekt OrderItems, und klicken Sie auf den Knoten Verweise.

  2. Klicken Sie im Menü Projekt auf Datenbankverweis hinzufügen.

    Tipp

    Sie können auch mit der rechten Maustaste auf den Knoten Verweise klicken und dann auf Datenbankverweis hinzufügen klicken.

    Das Dialogfeld Datenbankverweis hinzufügen wird angezeigt. Da die Projektmappe nur ein Datenbankprojekt enthält, ist Datenbankprojektschema (.dbschema) standardmäßig ausgewählt.

  3. Klicken Sie auf Durchsuchen.

    Das Dialogfeld Datenbankdatei auswählen wird geöffnet.

  4. Geben Sie die Datei ProductsDB.dbschema an, die erstellt wurde, als Sie das Projekt in der vorausgesetzten exemplarischen Vorgehensweise erstellt haben (z. B. Eigene Dateien\Visual-Studio 2008\Projects\ProductsDB\ProductsDB\sql\ProductsDB .dbschema), und klicken Sie auf Öffnen.

  5. Aktivieren Sie unter Datenbank-Verweisvariablen das Kontrollkästchen Datenbankvariable definieren. Geben Sie im Feld Name den Namen ReferencedDBVar ein. Geben Sie unter Wert den Wert ProductsDB ein.

    Tipp

    In dieser exemplarischen Vorgehensweise können Sie davon ausgehen, dass die Datenbank, auf die Sie verweisen, sich immer auf dem gleichen Server wie der Datenbank befindet, der Sie den Verweis hinzufügen. Daher müssen Sie keine Variablen für den Servernamen definieren.

  6. Aktivieren Sie unter Schemaobjekte und Skripts werden aktualisiert das Kontrollkästchen Vorhandene Schemaobjektdefinitionen und Skripts aktualisieren, sodass die Datenbank-Verweisvariablen verwendet werden, und klicken Sie auf OK.

  7. Klicken Sie im Dialogfeld Vorschau der Änderungen auf INNER JOIN, um die Details der Änderung anzuzeigen, und klicken Sie dann auf Übernehmen.

    Die Definition der Ansicht wird wie im Folgenden dargestellt aktualisiert:

    -- =============================================
    -- Create ItemDetailsView view
    -- =============================================
    CREATE VIEW [dbo].[ItemDetailsView]
    AS 
    SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], 
           O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O
     INNER JOIN [$(ReferencedDBVar)].[dbo].[Products] AS P
            ON P.[ProductID] = O.[ProductID]
    

    Der angegebene Variablenname identifiziert die Tabelle, auf die Sie verweisen, und die sechs Fehler wurden behoben. Als Nächstes erstellen Sie das Datenbankprojekt und stellen es bereit

So konfigurieren und erstellen Sie das Projekt und stellen es bereit

  1. Klicken Sie im Projektmappen-Explorer auf OrdersDB (das Projekt, nicht die Projektmappe).

  2. Klicken Sie im Menü Projekt auf Eigenschaften von OrdersDB.

    Das Eigenschaftenfenster des Projekts wird angezeigt.

    Tipp

    Sie können auch im Projektmappen-Explorer mit der rechten Maustaste auf OrdersDB klicken und dann auf Eigenschaften klicken.

  3. Klicken Sie auf die Registerkarte Bereitstellen.

  4. Klicken Sie in der Liste Bereitstellungsvorgang auf Bereitstellungsskript erstellen und in Datenbank bereitstellen (.sql).

  5. Klicken Sie auf Bearbeiten, um die Zielverbindung anzugeben.

  6. Geben Sie die Informationen für das Herstellen einer Verbindung mit dem Datenbankserver an, auf dem Sie die Datenbank OrdersDB bereitstellen möchten.

    Wichtig

    Um diese exemplarische Vorgehensweise erfolgreich abzuschließen, müssen Sie die Datenbank auf dem gleichen Server bereitstellen, auf dem Sie ProductsDB in der vorausgesetzten exemplarischen Vorgehensweise bereitgestellt haben. Wenn die Bereitstellung auf einem anderen Server erfolgen soll, müssen Sie eine Variable dafür definieren.

  7. Geben Sie unter Wählen Sie einen Datenbanknamen aus, oder geben Sie ihn ein die Zeichenfolge OrdersDB ein, und klicken Sie dann auf OK.

    Das Feld Zielverbindung enthält die Verbindungszeichenfolge, und das Feld Zieldatenbankname enthält "OrdersDB".

  8. Nehmen Sie die Standardwerte für die anderen Optionen an, öffnen Sie das Menü Datei, und klicken Sie auf Ausgewählte Elemente speichern.

    Die Bereitstellungseinstellungen des Projekts werden gespeichert.

  9. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Das Datenbankprojekt wird erstellt. Bei einem erfolgreichen Build wird in der Statusleiste Buildvorgang erfolgreich angezeigt. Außerdem werden im Fenster Ausgabe die Buildergebnisse angezeigt.

  10. Klicken Sie im Projektmappen-Explorer auf OrdersDB (das Projekt, nicht die Projektmappe).

  11. Zeigen Sie im Menü Erstellen auf OrdersDB bereitstellen.

    Das Datenbankprojekt wird mithilfe der Verbindung bereitgestellt, die Sie in der Buildkonfiguration angegeben haben. Die Meldung "Die Bereitstellung war erfolgreich" wird im Ausgabefenster und auf der Statusleiste angezeigt.

Nächste Schritte

In der Regel würden Sie das Datenbankprojekt jetzt unter die Versionskontrolle stellen, um es für das Team freizugeben.

Siehe auch

Konzepte

Konfigurieren von Datenbankprojekten und Durchführen einer Testbereitstellung

Schreiben und Ändern von Datenbankcode

Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung