Refactoring der SQL Server-Struktur

Refactoring der SQL Server-Struktur

Wenn ich in meinem C#-Code den Namen einer Variablen ändere, ändern sich häufig auch alle Verweise darauf.

Gibt es eine ähnliche Funktion, die mir dies mit Objekten in SQL-Servern ermöglicht? Einige meiner Tabellen, Spalten und gespeicherten Prozeduren müssen umbenannt werden, aber ich möchte natürlich, dass alles weiterhin funktioniert.

Antwort1

F: Gibt es dafür Apps und Funktionen?

Ja.

F: Sollten Sie sie verwenden?

Wahrscheinlich nicht. Das Problem mit SQL besteht darin, dass es außerordentlich schwierig ist, alle Verweise auf Objektnamen zu erfassen.

Ein Beispiel hierfür ist dynamisches SQL – die Technik, Zeichenfolgen zu erstellen und diese dann als Abfrage auszuführen. Meine gespeicherte Prozedur könnte Code wie diesen haben:

DECLARE @StringToExecute
SET @StringToExecute = 'SELECT * FROM dbo.'
SET @StringToExecute = @StringToExecute + 'MyTableName;'
EXEC (@StringToExecute);

Wenn Sie dbo.MyTableName umbenennen möchten, müssen Sie sich die Zeichenfolgen in gespeicherten Prozeduren und im App-Code ansehen. Das ist wirklich schwierig, da Folgendes auch gültig ist:

DECLARE @StringToExecute
SET @StringToExecute = 'USE Database1;'
SET @StringToExecute = @StringToExecute = 'SELECT * FROM dbo.'
SET @StringToExecute = @StringToExecute + 'MyTableName;'
EXEC (@StringToExecute);
SET @StringToExecute = 'USE Database2;'
SET @StringToExecute = @StringToExecute = 'SELECT * FROM dbo.'
SET @StringToExecute = @StringToExecute + 'MyTableName;'

Dadurch werden zwei unterschiedliche Abfragen für zwei unterschiedliche MyTableNames in zwei unterschiedlichen Datenbanken erstellt.

Ein weiteres Beispiel sind verknüpfte Serverabfragen. Jeder Ihrer anderen SQL-Server kann mit verknüpften Servern, Synonymen, Ansichten usw. eingerichtet sein, um Ihre vorhandenen Objekte abzufragen.

Objektnamenänderungen und Tabellenrefactoring sind daher eigentlich nur in folgenden Fällen möglich:

  • Ihre App ist relativ jung
  • Sie haben eine sehr genaue Kontrolle über die Abfragen
  • Sie wissen, woher die Anfragen kommen

Antwort2

Wenn Sie über Linq to SQL sprechen und die LINQ-Objektdefinitionen in Visual Studio ändern, besteht die typische Methode zum Aktualisieren darin, sie zu löschen und im Designer erneut hinzuzufügen, dann ihre Referenzen zu finden und sie auf die neuen Namen zu aktualisieren. Wenn Sie DI und etwas wie das Repository-Muster verwenden, ist dies ziemlich einfach, da sich die Referenzen alle in einem Bereich befinden und nicht über Ihren gesamten Code verteilt sind.

Antwort3

Wenn Sie etwas kaufen möchten, sieht es so ausRotes Torhat genau das Richtige für Sie.

Antwort4

Ich rate Ihnen, es zu versuchenSQL abgeschlossen Sie können die Lesbarkeit des Codes verbessern, indem Sie Tabellen, Spalten, temporären Tabellen und Spalten, Ansichten, gespeicherten Prozeduren und Funktionen aussagekräftige und selbsterklärende Namen geben. SQL Complete korrigiert automatisch alle Verweise auf die umbenannten Objekte.

Mithilfe der Umbenennungsfunktion können Sie auch die Namen lokaler und SQLCMD-Variablen in wenigen Sekunden ändern. Codeänderungen werden in einer praktischen Baumansicht des Umbenennungsdialogfensters in der Vorschau angezeigt.

verwandte Informationen