Refactoring von SourceCode ist mittlerweile weit verbreitet. Oft kommt es vor, dass sich die erste Bennenung von Variablen oder Funktionen als nicht ideal herausstellt. Dann beginnt das groß umbenennen im SourceCode. Zum Glück unterstützt das Visual Studio den Entwickler bei dieser Aufgabe.
SQL Data Tools
Seit Version 2010 des Visual Studio gibt es die Erweiterung “SQL Data Tools”. Die SQL Data Tools (SSDT) können von der Microsoft Seite heruntergeladen werden (Link-MSDN) Mit Visual Studio 2013 erspart man sich den Download. Die SSDT ermöglichen Datenbankentwicklung im Team. D.h. mehrere Entwickler können gemeinsam an einem Datenbank Projekt arbeiten. Mehr dazu im Vortrag meinem Vortrag bei der VSONE (www.vsone.de) “Datenbankentwicklung im Team - Neue Möglichkeiten mit den SQL Data Tools”
Ein weiteres nützliches Feature ist das Umbenennen der Datenbank Objekte. Oder wissen Sie immer genau in welchen Views oder Stored Procedures , ein Tabellenname oder ein Feldname im SQL Code verwendet wurde?
Es ist gar nicht notwendig, das gesamte Datenbank Projekt in den SSDT entwickelt zu haben. Die SSDT können auch bei bestehenden Datenbank eingesetzt werden. Dazu muss zunächst die Datenbank importiert werden.
Als erstes wird ein neues Datenbankprojekt begonnen.
(FILE-NEW-SQL Server – SQL Server Database Project)
Im nächsten Schritt wird die Datenbank importiert.
“Projekt -Kontext Menu “- Import – Database
Im folgenden Dialog noch die Datenbankverbindung angeben:
Für jedes importierte Datenbank-Objekt wird in der Solution eine SQL Datei angelegt. Als Inhalt steht jeweils das passende Create-Statement. Nach dem Import der Contos-Demo Datenbank sieht der Solution Explorer folgendermaßen aus:
Jede Tabelle und jeder View wird hier aufgelistet. Ein Schema, in diesem Fall “dbo” wird als Ordner der Solution Struktur angelegt.
Der View “V_CUstomerOrders wird wie folgt definiert und angezeigt. Die DataTools bieten keinen Editor für View Darstellung. Daher ist die Darstellung der SQL Text:
In dem View wird auf das Feld “YearlyIncome” der “Customer”-Tabelle verwiesen. Wenn nun die Aufgabe darin besteht in der Customer Tabelle das Feld umzubenennen, woher wissen Sie an welchen Stellen im SQL Text sie noch Änderungen vornehmen müssen?
Zur Tabellen-Bearbeitung bieten sie SSDT sogar einen Editor. Dieser ist im Bildschirm zweigeteilt. Oben der Editor und im unteren Bereich der SQL Text. Änderungen können an beiden Stellen vorgenommen werden. Aber das Refactoring ist nur im SQL Text implementiert.
Den Cursor auf das zu ändernde Feld stellen und im Kontext Menü “Refactor” - “Rename” wählen.
Im Rename-Dialog noch den neuen Namen (YearlyNetIncome] eingeben und optional bestimmen ob die Änderungen angezeigt werden sollen:
Danach werden alle zu ändernden Stellen angezeigt. In meinem Fall sind die Views “V_CustomerPromotion, V_Customer, und V_CustomerOders zu ändern. Code der in StoreProcedures oder anderen Datenbank-Objekten enthalten ist, würde hier ebenfalls geändert werden.
Diese Code Änderungen wurden nun nur in den lokal gespeicherten SQL-Dateien durchgeführt- die Datenbank selbst ist noch nicht verändert. Über das Projekt Kontext Menü kann mit “Publish” die Datenbank am SQL Server selbst verändert werden.
Die SSDT vergleichen hierzu die lokalen SQL Dateien mit der Struktur am Server und erstellen im Publish-Vorgang ein SQL Skript das die Update-Statements enthält um die Server Version an die lokale Version anzupassen.
Fazit
Endlich haben Objektnamen-Änderungen in Datenbank Projekten den Schrecken verloren