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.
CREATE SYNONYM dbo.NewName FOR dbo.OldName;
-- change app to point to dbo.NewName;
-- once all of your changes have been tested:
BEGIN TRANSACTION;
DROP SYNONYM dbo.NewName;
EXEC sp_rename N'dbo.OldName', N'NewName', N'OBJECT';
COMMIT TRANSACTION;
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:
CREATE VIEW dbo.vNewName
AS
SELECT Column1, NewColumnName = OldColumnName
FROM dbo.OldName;
CREATE SYNONYM dbo.NewName FOR dbo.vNewName;
Wenn Sie dann wie oben alle Verweise auf Spalten und den neuen Tabellennamen geändert haben, einfach:
BEGIN TRANSACTION;
DROP SYNONYM dbo.NewName;
DROP VIEW dbo.vNewName;
EXEC sp_rename N'dbo.OldName', N'NewName', N'OBJECT';
EXEC sp_rename N'dbo.NewName.OldColumnName', N'NewColumnName', N'COLUMN';
COMMIT TRANSACTION;
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.