SQL PASS Stuttgart: Kostenfreier Vortrag zu den SQL Server 2012 Data Tools am 19. Juni 2012

PASS Deuschland

Am 19.06.2012 setzt sich meine Reihe von Vorträgen zu den Data Tools und Database Lifecycle Management in Stuttgart auf dem SQL PASS Usergroup Meeting in der Microsoft Niederlassung Böblingen fort. Weitere Details und Infos zur Anmeldung finden sich auf der PASS-Regionalseite Stuttgart.

Entwicklung von Datenbanken und DB Lifecycle Management mit den SQL Server 2012 Data Tools

Mit den kostenfreien SQL Server 2012 Data Tools erhalten wir ein Toolset, das sich in Visual Studio integriert und uns eine sehr weitreichende Möglichkeit für die Entwicklung und die Verwaltung von Datenbankstrukturen und -code in einem Visual-Studio-Projekt zur Verfügung stellt. Dies ist gleichermaßen für Entwickler, BI Berater und DBAs interessant, wie sich auch bei Armins Session zu diesem Thema auf dem SQL Server 2012 Launch herausgestellt hat.

In diesem Vortrag geht es auch um die Integration der DB-Entwicklung in das - in der Anwendungsentwicklung schon weit verbreitete - Application Lifecycle Management. Was bedeutet das konkret? Die DB-Struktur kann gemeinsam mit dem Anwendungscode in die Quellcodeverwaltung aufgenommen und versioniert werden. Alle Vorzüge wie Labeling, Branching/Merging, Versionshistorie- und vergleiche stehen damit zur Verfügung. Weiter geht es mit der Möglichkeit, manuelle Strukturabgleiche auf Objektebene mit existierenden Datenbanken durchführen zu können. Schlussendlich erzeugt man ein DB-Build und schickt das Ergebnis zu Kunden, die unterschiedliche DB-Stände haben und alle haben ab sofort den gleichen Stand. Weiter geht es mit T-SQL-Debugging, Codierunterstützung, DB-Refactoring, etc. Alle Features und Vorzüge kann ich an dieser Stelle leider nicht beschreiben, kann Ihnen aber für diese Session versprechen, dass Ihnen einige Schmerzpunkte, die Sie bislang mit der Verwaltung, der Entwicklung und dem Deployment von DB-Strukturen hatten, genommen werden!

SQL Server Data Tools Workshop mit Gerd Drapers, Microsoft Corp. in Bad Homburg

Gerd Drapers, Mitbegründer der VSDB-Funktionalitäten in Visual Studio und Principal Group Program Manager SQL Server bei der Microsoft Corporation stellt die SQL Server Data Tools in einem ganztägigen (und beinahe kostenfreien) Workshop am 02.07.2012 in Bad Homburg vor. Für alle TechEd Europe-Teilnehmer sei noch erwähnt: Der Workshop findet direkt am Montag nach der TechEd-Woche statt.

header_sql

Referenzen auf andere Datenbanken in einem SSDT-Projekt verwalten

Der Import einer existierenden Datenbank in ein SQL Server Data Tools - Projekt ist zunächst ein einfacher Schritt, bei welchem es nicht viel zu beachten oder einzustellen gibt. Wird dann das erste lokale Build angestoßen, so ist ein häufiges Problem, dass sehr viele Meldungen in der Art .

Warning:  SQL71562: Procedure: [dbo].[MySP] has an unresolved reference to object [demo2].[dbo].[Employee]

. in der Errorlist zu sehen sind. In den allermeisten Fällen ist das Referenzieren von Objekten in einer anderen Datenbank, als der aktuell importierten, die Ursache. Diese Referenzen können (logischerweise) nicht vom Compiler aufgelöst werden, da diesem die andere Datenbank nicht bekannt ist.

Um diesen Umstand zu ändern, müssen wir dem Projekt eine Datenbank-Referenz hinzufügen. Dies kann auf zwei verschiedene Arten geschehen:

  1. Erstellen/Hinzufügen eines weiteren DB-Projektes zu dieser Solution
  2. Hinzufügen eines DACPACs zum Projekt

Die erste Methode kommt im Wesentlichen dann in Frage, wenn Sie die Struktur der anderen Datenbank auch wirklich in einem DB-Projekt verwalten möchten.

Methode 2 ist dann interessant, wenn es ausreichend ist, lediglich die Struktur der anderen DB bekannt zu machen, ohne dass man diese in der Solution verwalten und pflegen möchte. Dies ist häufig der Fall, wenn auf die andere DB lediglich zugegriffen wird, diese aber von einem anderen Team oder einer anderen Software bereitgestellt wird. Die folgende Vorgehensweise gilt für beide Methoden.

Eine DB-Referenz wird über das Kontextmenü des References-Knoten angelegt.

image

 Im daraufhin angezeigten Fenster wählen Sie die Art der Referenz aus.

Wenn Sie im Anschluss direkt mit "Ok" bestätigen, so werden Sie feststellen, dass die Warnungen nach wie vor vorhanden sind. Dies ist darin begründet, dass die Data Tools in der Standardeinstellung die Referenzierung über eine SQLCMD-Variable erwarten, was auch eigentlich die "sauberere" Variante ist, da der Name der zweiten DB jederzeit in den Projekteigenschaften auf der Seite "SQLCMD Variables" zentral geändert werden kann, ohne dass alle Referenzen angepasst werden müssen. In diesem Fall müssen Sie allerdings einmalig alle Codestellen, die auf die zweite DB verweisen, anpassen, so dass dort bspw. nicht mehr "Demo2.dbo.Tabellenname" referenziert wird, sondern die Syntax, so wie Sie in der folgenden Abbildung markiert ist, verwendet wird.

image

 

Alternativ zu der eben beschriebenen Vorgehensweise kann aber auch, wie in der nachfolgenden Abbildung markiert, vorgegangen werden. Hierdurch können alle Codestellen unverändert bleiben und die Buildfehler und -warnungen werden im Anschluss sofort nicht mehr auftreten. Wenn es unwahrscheinlich ist, dass sich der Name der zweiten Datenbank ändern wird, ist dies auf jeden Fall eine sinnvolle Alternative. Auch erhalten Sie sich mit dieser Variante den Vorteil, dass Sie Create-Scripts von Objekten, welche die andere DB referenzieren, direkt und einzeln ausführen können, um diese bspw. schnell auf einer DB einzuspielen und zu testen. Dies geht mit der ersten Methode nicht, da die Auflösung der SQLCMD-Variable nur im Rahmen eines Schema Compares oder zum Zeitpunkt des Publishings aufgelöst werden.

image

Quick Hit Videos zu den Data Tools in Visual Studio 11 (Beta), sowie zu vielen weiteren interessanten Themen bzgl. VS/TFS 11

Christian Binder veröffentlicht in seinem MSDN-Blog seit einigen Tagen täglich drei neue Kurzvideos zu den Betaversionen von Visual Studio 11 und TFS 11. Themen sind bspw. das neue Taskboard, die neuen SCC-Features und vieles mehr.

Zu einem meiner Lieblingsthemen, den SQL Server Data Tools (SSDT), finden sich drei Clips, in denen ich zeige, wie diese in Visual Studio 11 integriert sind. Alle vorgestellten Features sind bereits jetzt schon durch die Installation der Data Tools (als kostenfreier Download verfügbar) in der Visual Studio 2010 IDE nutzbar!

Visual Studio 11 Beta - Data Tools: Arbeiten mit Datenbankprojekten from Visual Studio [Microsoft] on Vimeo.

Visual Studio 11 Beta - Data Tools: Synchronisation von DB-Projekten mit Datenbanken from Visual Studio [Microsoft] on Vimeo.

Visual Studio 11 Beta - Data Tools: Entwicklerunterstützung from Visual Studio [Microsoft] on Vimeo.