2010-08-24 10 views
10

Alberne klingende Frage, ich weiß ... Lassen Sie mich zuerst einige Grundlagen erarbeiten.Entwickeln von TSQL in Visual Studio 2010-Datenbankprojekten

Ich habe erfolgreich ein Datenbankprojekt erstellt, das aus Hunderten von Tabellen, gespeicherten Prozeduren, Indizes usw. besteht. das sind unsere Produktionsdatenbanken.

Ich habe die Lösung zur Quellcodeverwaltung (TFS) erfolgreich hinzugefügt.

Ich habe eine Änderung (als Test) für einige der Objekte gemacht und ein Deployment-Skript generiert, und das ganze System ist sehr beeindruckend, muss ich sagen. Aber es scheint die Stärke von VS 2010, aus einer DB Perspektive ist Bereitstellung, und nicht notwendigerweise Entwicklung.

Ich bin völlig verwirrt über den täglichen Workflow in der Datenbank/TSQL-Entwicklung mit Visual Studio. Angenommen, ich muss einige Spalten zu einer Tabelle hinzufügen und zugehörige gespeicherte Prozeduren ändern, um diese Daten für diese Spalten zurückzugeben/zu aktualisieren.

Während es einfach genug ist, alle Skripte in meinem Datenbankmodell zu modifizieren, würde ich gerne in der Lage sein, sie gegen eine dev-Datenbank zu isolieren, wo ich einige Tests machen kann ... Aber es ist so einfach wie nicht zu aktualisieren eine Prozedur, wenn sie existiert, ohne das Skript manuell in ein ALTER zu ändern (oder DROP-Code vor dem CREATE hinzuzufügen). Dies ein- oder zweimal zu tun ist kein Thema, aber in einer realen Entwicklungsumgebung tun wir das den ganzen Tag.

Vielleicht ist die Antwort, häufige Bereitstellungen auf dem Dev-Server durchzuführen, wie ich debuggen und Änderungen an Procs, zum Beispiel? Ziemlich viel Overhead; Ich könnte die notwendigen Skripte in ein paar Sekunden manuell ausführen, Aufbau und Bereitstellung dauert ein paar Minuten. Und wenn drei von uns verschiedene Änderungen an einer Entwicklungs-DB vornehmen, überschreiben wir nicht gegenseitig die Änderungen?

Entschuldigung, dass ich so lange bin, aber ich kann nicht anders, als zu denken, dass mir hier etwas Einfaches fehlt.

Gibt es Bücher/Tutorials/Webinare, die diese Art der Herangehensweise an die tatsächliche Entwicklung zeigen?

Antwort

6

Ich denke, Sie haben den Nagel auf den Kopf getroffen. Um Ihre modifizierten gespeicherten Prozeduren zu testen, müssen Sie den Bereitstellungsschritt durchlaufen, um Ihre Datenbank zu aktualisieren. Das ist der Nachteil des Offline-Entwicklungsmodells.

Hier bei Red Gate hatten wir zahlreiche Anfragen, SQL Source Control das Datenbank-Projekt zu unterstützen, damit Entwickler vom 'Online'-Entwicklungsmodell profitieren können, während sie gleichzeitig von den Datenbank-Projektfunktionen profitieren.

[EDIT] Wir haben die 'Beta'-Unterstützung für das Datenbankprojekt in SQL Source Control hinzugefügt, das eine Verbindung von SSMS mit dem Datenbankprojektformat ermöglicht. Einfacher Link zum Ordner mit eh .sqlproj Datei von SQL Source Control und starten Sie die Entwicklung! [/ EDIT]

In der Zwischenzeit müssen Sie die Bereitstellung regelmäßig für den Entwickler fortsetzen!

Eine Alternative besteht darin, eine echte Datenbank zu entwickeln und die Schema Compare-Funktion zu verwenden, um eine Synchronisierung mit Ihrem Datenbankprojekt durchzuführen. Schema Compare ist in den Editionen Premium und Ultimate von Visual Studio verfügbar.

David Atkinson Product Manager Red Gate Software

+0

+1 für Modify Datenbank direkt und verwenden Schemavergleich –

Verwandte Themen