Umgestalten von Datenbankobjekten in einer Teamumgebung

Mit Visual Studio Premium können Sie Änderungen verwalten, indem Sie die Offlinedarstellung des Datenbankschemas (als Datenbankprojekt bezeichnet) unter Versionskontrolle stellen. Sie oder ein Mitglied des Teams können das Datenbankprojekt ändern. Diese Änderungen müssen dann jedoch in einer aktiven Datenbank erstellt und bereitgestellt werden. In dieser Situation können bis zu vier Darstellungen der Datenbank vorhanden sein:

  • Der Datenbankserver, der die aktive Datenbank und die Daten enthält.

  • Das Datenbankprojekt, bei dem es sich um die Offlinedarstellung des Datenbankschemas handelt.

  • Die kompilierte DBSCHEMA-Datei mit Informationen, die zum Bereitstellen dieses Datenbankschemas für eine Zieldatenbank und einen Zielserver erforderlich sind. Diese Datei wird bei jedem Build des Datenbankprojekts erstellt.

  • Das Repository der Versionskontrolle, das alle Änderungen verfolgt, die beliebige Mitglieder des Teams am Datenbankprojekt vornehmen.

Weitere Informationen finden Sie unter Beginnen der Datenbankentwicklung im Team.

Umgestaltung in einer Teamumgebung

Wenn Sie ein Datenbankobjekt als Teil einer Umgestaltung umbenennen oder in ein anderes Schema verschieben, werden andere Objekte, die auf das umbenannte oder verschobene Objekt verweisen, automatisch mit dem neuen Namen oder Schema aktualisiert. Wenn Sie beispielsweise eine Spalte in einer Tabelle umbenennen, werden alle gespeicherten Prozeduren, die auf diese Spalte verweisen, automatisch mit dem neuen Namen aktualisiert. Weitere Informationen finden Sie unter Umbenennen aller Verweise auf ein Datenbankobjekt oder Verschieben eines Datenbankobjekts in ein anderes Schema.

Sie können ein Datenbankobjekt erst aktualisieren, wenn Sie die Dateien für alle zu aktualisierenden Objekte aus der Quellcodeverwaltung ausgecheckt haben. Wenn Sie die Option der Quellcodeverwaltung so festgelegt haben, dass Dateien automatisch ausgecheckt werden, wird der Auscheckversuch ohne weitere Meldung durchgeführt. Andernfalls werden Sie zum Auschecken der Dateien aufgefordert.

Beim Umgestaltungsvorgang tritt in den folgenden Situationen ein Fehler auf:

  • Wenn ein anderer Benutzer eine oder mehrere Dateien gesperrt hat, wird eine Fehlermeldung angezeigt und die Umgestaltung abgebrochen. Sie müssen warten, bis die Dateien entsperrt wurden, bevor Sie den Vorgang erneut ausführen können.

  • Wenn die ausgecheckten Versionen aktueller als die Versionen im Projekt sind, wird eine Fehlermeldung angezeigt und die Umgestaltung abgebrochen. Vor einer Wiederholung des Vorgangs sollten Sie die Dateiversionen abgleichen.

  • Wenn Sie zum Auschecken der Dateien aufgefordert werden und auf Abbrechen klicken, wird der Umgestaltungsvorgang abgebrochen.

    Tipp

    Wenn Sie ein Datenbankobjekt umbenennen, wird die SQL-Datei, in der dieses Objekt definiert ist, nicht umbenannt. Sie können die Datei manuell im Projektmappen-Explorer umbenennen.

Umgestalten von Protokollen und Beibehaltung der Absicht

Wenn Sie ein Datenbankobjekt als Teil einer Umgestaltung umbenennen oder verschieben, wird die Datei Projektname.refactorlog mit den Details dieses Vorgangs aktualisiert. Wenn Sie die Änderungen bereitstellen, hilft das Protokoll dabei, die beabsichtigten Änderungen beizubehalten, da das Bereitstellungsskript entsprechende Vorgänge enthält. Die Bereitstellung kann beispielsweise eine sp_rename-Anweisung anstelle von drop- und create-Anweisungen ausgeben.

Wenn zwei oder mehr Entwickler Änderung vornehmen, durch die das Umgestaltungsprotokoll aktualisiert wird, müssen die Änderungen an der Protokolldatei zusammengeführt werden. Die REFACTORING-Datei ist eine XML-Datei mit einem einfachen Schema, daher sollte sich die Zusammenführung der Aktualisierungen nicht als schwierig erweisen. Für jeden Vorgang sind Datum und Uhrzeit erfasst, sodass Sie sicherstellen können, dass Umgestaltungsvorgänge in der richtigen Reihenfolge angewendet werden.

Warnung

Wenn Sie die Änderungen am Umgestaltungsprotokoll automatisch zusammenführen, können Fehler auftreten. Sie sollten die Ergebnisse einer automatischen Zusammenführung stets überprüfen oder aber die Änderungen manuell zusammenführen, bevor Sie versuchen, das Datenbankprojekt bereitzustellen.

Das Umgestaltungsprotokoll ähnelt dem folgenden Beispiel:

<?xml version="1.0" encoding="utf-16"?>
<Operations>
  <Operation Name="Move Schema" Key="677a0ee6-1707-413a-985f-b392b1a2d68b" ChangeDateTime="04/07/2008 21:59:00">
    <Property Name="ElementName" Value="[Person].[AbsenceHistory]" />
    <Property Name="ElementType" Value="ISql90Table" />
    <Property Name="NewSchema" Value="HumanResources" />
    <Property Name="IsNewSchemaExternal" Value="True" />
  </Operation>
  <Operation Name="Rename Refactor" Key="fb88992c-cd6e-43d0-aa54-ed80f155d202" ChangeDateTime="04/07/2008 21:59:26">
    <Property Name="ElementName" Value="[HumanResources].[AbsenceHistory].[column_1]" />
    <Property Name="ElementType" Value="ISqlSimpleColumn" />
    <Property Name="ParentElementName" Value="[HumanResources].[AbsenceHistory]" />
    <Property Name="ParentElementType" Value="ISql90Table" />
    <Property Name="NewName" Value="EmployeeID" />
  </Operation>
</Operations>

In diesem Beispielprotokoll wurden zwei Umgestaltungsvorgänge aufgezeichnet. Im ersten Vorgang wurde die Tabelle [AbsenceHistory] aus dem Schema [Person] in das Schema [HumanResources] verschoben. Im zweiten Vorgang wurde die Spalte [column_1] in der Tabelle [AbsenceHistory] in [EmployeeID] umbenannt.

Siehe auch

Konzepte

Erstellen und Verwalten von Anwendungen auf Datenebene und Datenbanken in Visual Studio

Umbenennen aller Verweise auf ein Datenbankobjekt

Verschieben eines Datenbankobjekts in ein anderes Schema

Umgestalten von Datenbankcode und Daten