Übersicht über Datenbank- und Serverprojekte

Sie können die Datenbankentwicklung in der Organisation effizienter gestalten, indem Sie in Visual Studio Premium ein Datenbankprojekt oder Serverprojekt erstellen und das Projekt unter Versionskontrolle stellen. Diese Offlinedarstellungen enthalten die Objektdefinitionen, Einstellungen und Bereitstellungsskripts, die Sie zum Erstellen einer separaten Instanz der betreffenden Datenbank (oder des Servers) oder zum Aktualisieren einer vorhandenen Instanz verwenden können.

Je nach Anforderungen Ihrer Organisation können Sie auch Teile von Projekten freigeben oder ein zusammengesetztes Projekt erstellen. Weitere Informationen finden Sie weiter unten in diesem Thema unter Freigeben von Teilen von Projekten oder im Abschnitt "Erstellen von zusammengesetzten Projekten mit Verweisen" von Verwenden von Verweisen in Datenbankprojekten.

Verfügbare Projekttypen

In Visual Studio 2010 Premium können Sie Datenbankprojekte, Serverprojekte und DAC-Projekte (Data-Tier Application Component Project, Anwendungskomponentenprojekt auf Datenebene) erstellen.

  • Anwendungskomponentenprojekt auf Datenebene
    DAC stellt ein neues Konzept dar. Dieses wurde mit SQL Server 2008 R2 eingeführt und enthält die Definition für eineSQL Server-Datenbank und die unterstützenden Instanzobjekte, die von einer Client/Server- oder 3-Tier-Anwendung verwendet werden. Eine DAC enthält Datenbankobjekte, z. B. Tabellen und Ansichten, sowie Instanzentitäten, z. B. Anmeldungen. Sie können mithilfe von Visual Studio ein DAC-Projekt erstellen, eine DAC-Paketdatei erstellen und die DAC-Paketdatei an einen Datenbankadministrator für die Bereitstellung in einer Instanz des SQL Server-Datenbankmoduls senden. Eine Liste der von DAC-Projekten unterstützten Funktionen finden Sie unter Features Supported in Data-tier Applications.

  • Datenbankprojekt
    Datenbankprojekte enthalten die Definitionen aller Objekte für ein Datenbankschema. Zudem sind Datenbankeinstellungen, Buildeinstellungen und Bereitstellungseinstellungen enthalten.

  • Serverprojekt
    Serverprojekte enthalten die Definitionen der Objekte, die sich auf dem Server oder in der Masterdatenbank auf dem Server befinden. Zudem sind Servereinstellungen, Buildeinstellungen und Bereitstellungseinstellungen enthalten.

Projektstruktur

Im Projektmappen-Explorer wird nach Dateien geordnete Projekt angezeigt. Jedes Element im Projektmappen-Explorer entspricht einer gespeicherten Datei oder einem Ordner. Im Gegensatz dazu wird in der Schemaansicht das Projekt nach Objekten oder Schemas geordnet angezeigt, sodass Sie Objekte in der Datenbank unabhängig davon identifizieren können, ob diese als separate Dateien vorliegen oder nicht.

Datenbanken oder Serverprojekte können die folgenden Typen von Objekten enthalten:

  • Eigenschaftendateien
    Das Datenbank- oder Serverprojekt enthält im Ordner Eigenschaften Dateien mit Eigenschaftswerten. Durch Ändern dieser Werte können Sie steuern, wie das Projekt bereitgestellt wird. So können Sie z. B. Datenbankeinstellungen, Servereinstellungen, SQLCMD-Variablen und Datenbankberechtigungen angeben. Weitere Informationen finden Sie unter Eigenschaftendateien in Datenbank- und Serverprojekten.

  • Datengenerierungspläne
    Datengenerierungspläne enthalten Informationen zum Generieren realistischer und repräsentativer Testdaten für eine Datenbank, die bereitgestellt oder aktualisiert werden soll. Weitere Informationen finden Sie unter Generieren von Testdaten für Datenbanken mithilfe von Daten-Generatoren.

  • Schemavergleiche
    Ein Schemavergleich enthält Informationen zu einem bestimmten Vergleich zwischen dem Datenbankprojekt und einem anderen Schema. Sie können das Projekt mit diesem Schema immer wieder vergleichen, indem Sie die SCMP-Datei erneut öffnen und den Vergleich aktualisieren. Weitere Informationen finden Sie unter Vergleichen und Synchronisieren von Datenbankschemas.

  • Schemaobjekte
    Schemaobjekte werden in einer Auflistung von SQL-Dateien definiert, die im Projektordner gespeichert sind. Die meisten Objekte werden in separaten Dateien definiert. Zu den Ausnahmen zählen Spalten in einer Tabelle und Parameter für eine gespeicherte Prozedur oder Funktion. Spalten werden in der Definition für die Tabelle und Parameter in der Definition für die gespeicherte Prozedur oder die Funktion gespeichert. Weitere Informationen finden Sie unter Erstellen und Ändern von Datenbank- und Serverobjekten.

  • Skripts
    Das Projekt neben sämtlichen Skripts für die Verwaltung der Datenbank oder des Servers auch Skripts vor und nach der Bereistellung. Weitere Informationen finden Sie unter Erstellen und Bearbeiten von Datenbankskripts.

Importieren von Objekten und Einstellungen

Nach der Erstellung eines Projekts können Sie die Objekte und Einstellungen aus einer Datenbankinstanz oder aus einem Skript importieren. Wenn Sie eine Datenbank importieren, werden die zugehörigen Objektdefinitionen validiert. Anweisungen, die nicht analysiert werden können, werden in der Datei "ScriptsIgnoredOnImport.sql" abgelegt. Wenn Sie Objektdefinitionen importieren, die auf nicht mehr vorhandene Objekte verweisen, müssen Sie diese Fehler beheben, bevor Sie das Projekt erstellen und bereitstellen können. Sie können z. B. eine gespeicherte Prozedur importieren, die auf eine Tabelle verweist, die nicht mehr vorhanden ist. Um den Fehler zu beheben, können Sie diese gespeicherte Prozedur entfernen.

Nach dem Import eines großen Schemas müssen Sie unter Umständen viel Zeit mit der Fehlerbehebung verbringen. Teammitglieder können jedoch nicht versehentlich zusätzliche Fehler dieses Typs verursachen, wenn sie das Schema in Visual Studio Premium aktualisieren. Beim Ändern und Speichern von Objektdefinitionen werden alle Änderungen überprüft, damit Teammitglieder sie sofort korrigieren können und sie nicht in einer Livedatenbank bereitgestellt werden.

Nachdem Sie Warnungen in Objektdefinitionen aufgelöst haben, sollten Sie erwägen, auch den Datenbankcode auf Probleme mit dem Entwurf, der Benennung und der Leistung zu prüfen. Weitere Informationen finden Sie unter Analysieren von Datenbankcode zum Verbessern der Codequalität.

Freigeben von Teilen von Projekten

Wenn Sie einige Dateien in mehreren Projekten wiederverwenden möchten, können Sie jeden beliebigen Teil eines Projekts als unvollständiges Projekt exportieren. Mit dieser Aktion wird eine FILES-Datei erstellt, die Sie in einem oder mehreren anderen Projekten einfügen können. Beispielsweise können Sie über einige häufig verwendete gespeicherte Prozeduren verfügen, mit denen Sie alle Datenbanken überprüfen. Diese gespeicherten Prozeduren können Sie in einem Projekt definieren, exportieren und dann in den anderen Projekten einfügen. Auf diese Weise vermeiden Sie es, denselben Code in mehr als einem Projekt warten zu müssen. Weitere Informationen finden Sie unter Gewusst wie: Importieren und Exportieren unvollständiger Datenbankprojekte.

Sicherheitsüberlegungen

Die Datenbankprojekte und alle verwandten DBSCHEMA-Dateien enthalten Informationen zu den Datenbankressourcen. Ebenso wie den Zugriff auf den Quellcode sollten Sie auch den Zugriff auf die Datenbankprojekte und die DBSCHEMA-Dateien einschränken.

Mit den folgenden Methoden können Sie den Zugriff auf die Datenbankprojekte und die DBSCHEMA-Dateien steuern:

  • Verwenden der Versionskontrolle für die Projekte und entsprechender Dateisystemberechtigungen
    Sie können den Zugriff auf die Datenbankprojekte auf die Entwickler beschränken, die Zugriff benötigen. Zudem können Sie die Berechtigungen für alle Dateifreigaben mit Datenbankprojektdateien oder DBSCHEMA-Dateien einschränken, um den Zugriff nicht bereichtigter Personen zu verhindern.

  • Partitionieren eines Datenbankprojekts mithilfe unvollständiger Projekte
    Sie können die Datenbankobjekte auf mehrere Projekte verteilen und über die Berechtigungen der Versionskontrolle steuern, wer die Projekte anzeigen oder ändern kann. Weitere Informationen finden Sie unter Teamentwicklung von großen Datenbanken.

  • Erstellen einer DBSCHEMA-Datei mit leeren Verfahrenstexten
    Sie können eine Kopie der gespeicherten Prozeduren erstellen, die keine Implementierung enthalten, und die DBSCHEMA-Datei für diese Kopie für Entwickler freigeben, die solche Prozeduren aufrufen, aber nicht deren Implementierung kennen müssen. Weitere Informationen zum Verweisen auf DBSCHEMA-Dateien finden Sie unter Verwenden von Verweisen in Datenbankprojekten.

Ähnliche Szenarien

  • Beginnen der Teamentwicklung von Datenbanken
    Sie können Änderungen einer Datenbank verwalten, indem Sie eine Offlinedarstellung ihrer Objekte und Einstellungen erstellen und diese Darstellung unter Versionskontrolle stellen.

  • Teamentwicklung von Datenbanken mit Verweisen auf andere Datenbanken
    Sie können Änderungen einer Datenbank verwalten, indem Sie eine Offlinedarstellung ihrer Objekte und Einstellungen erstellen und diese Darstellung unter Versionskontrolle stellen. In dieser Darstellung definieren Sie datenbankübergreifende Verweise, um die Bereitstellung in anderen Zielumgebungen zu unterstützen.

  • Teamentwicklung von Datenbanken mit SQLCLR-Objektverweisen
    Sie können Änderungen einer Datenbank verwalten, indem Sie eine Offlinedarstellung ihrer Objekte und Einstellungen erstellen und diese Darstellung unter Versionskontrolle stellen. In dieser Darstellung fügen Sie Verweise auf eine SQLCLR-Assembly hinzu und verwenden dann in dieser Assembly definierte Objekte.

  • Teamentwicklung von Datenbanken, die auf freigegebene Serverobjekte verweisen
    Sie können Änderungen einer Datenbank verwalten, indem Sie eine Offlinedarstellung ihrer Objekte und Einstellungen erstellen und diese Darstellung unter Versionskontrolle stellen. In dieser Darstellung fügen Sie einen Verweis auf ein freigegebenes Serverprojekt hinzu, das die Definitionen von Serverobjekten enthält, z. B. Anmeldeinformationen oder Schlüssel.

  • Teamentwicklung von großen Datenbanken
    Änderungen an einer großen Datenbank können Sie verwalten, indem Sie die Objekte auf mehrere Projekte verteilen.

  • Teamentwicklung von Datenbanken, die XML-Schemaauflistungen verwenden
    Sie können Änderungen an Datenbanken verwalten, in denen eine oder mehrere XML-Schemaauflistungen für typisierte XML-Spalten verwendet werden.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen und Bereitstellen einer neuen der Versionskontrolle unterliegenden Datenbank

Exemplarische Vorgehensweise: Stellen eines vorhandenen Datenbankschemas unter Versionskontrolle

Konzepte

Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung

Konfigurieren von Datenbankprojekten und Durchführen einer Testbereitstellung

Schreiben und Ändern von Datenbankcode