Was ist der einfachste und zuverlässigste Ansatz zum Umbenennen der Datenbanktabellen und -spalten in SQL Server 2008 r2? Wir haben die Entwicklung abgeschlossen und müssen aus bestimmten Gründen einige Tabellen und einige Spalten umbenennen.
Ist die Verwendung von Synonymen der gute Weg, dies zu tun? Auf welche Fallstricke sollten wir vorbereitet sein? Hilft es auch beim ordnungsgemäßen Umbenennen der Spalten?
Wir haben viele Skripte, die sich auf diese Tabellen beziehen, und auf die in der Anwendung von .net-Entwicklern verwiesen wird.
sql-server-2008-r2
Himmel
quelle
quelle
Antworten:
Ich denke, der Ansatz hängt davon ab, ob die Anwendung (en) live sind oder ob Sie noch testen.
Bei Tabellen besteht der sicherste Ansatz darin, ein Synonym mit dem neuen Namen zu erstellen. Auf diese Weise können Sie die App (s) einzeln (oder sogar eine Referenz) ändern, ohne alle auf einmal ändern zu müssen. Sie müssen das Synonym nicht löschen und die Tabelle umbenennen, bis Sie sicher sind, dass alle Änderungen vorgenommen wurden.
Für Spalten ist es etwas schwieriger. Sie können stattdessen Synonyme erstellen, die auf eine Ansicht verweisen. Abhängig von der Basistabelle müssen jedoch nicht alle Ansichten aktualisiert werden. Als einfaches Beispiel:
Wenn Sie dann wie oben alle Verweise auf Spalten und den neuen Tabellennamen geändert haben, einfach:
Wenn die Anwendung nicht aktiv ist und noch getestet wird, benennen Sie einfach die Spalten um und beheben Sie die Fehler nach einer globalen Suche und ersetzen (oder Smart Refactor mit SSDT, RedGate usw.) durch App-Code / -Prozeduren usw.
Wenn die Anwendung aktiv ist, müssen Sie etwas vorsichtiger vorgehen.
quelle
Nun, es gibt viele Fallstricke, auf die Sie stoßen können, wenn Sie den Namen von Tabellen und Spalten ändern. Jeder andere SQL- oder Anwendungscode, der sie aufruft, muss entsprechend umbenannt werden, sonst funktioniert er nicht. Redgate stellt einige ziemlich gute Tools her, die alle Änderungen an abhängigen SQL-Ansichten / -Funktionen / -Sprocs vornehmen können. Der größte Ratschlag, den ich Ihnen geben kann, ist, diese Änderungen zuerst in einer DEV-Umgebung und dann TEST TEST TEST durchzuführen, um sicherzustellen, dass Sie den Code überall repariert haben.
quelle