Creo que el enfoque depende de si las aplicaciones están en vivo o si todavía está probando.
Para las tablas, el enfoque más seguro es crear un sinónimo con el nuevo nombre. De esta manera, puede cambiar las aplicaciones una por una (o incluso una referencia a la vez), sin tener que cambiarlas todas a la vez. No tiene que descartar el sinónimo y cambiar el nombre de la tabla hasta que esté seguro de tener todos los cambios en su lugar.
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;
Para las columnas, es un poco más complicado. En su lugar, puede crear sinónimos que apunten a una vista, pero no todas las vistas serán necesariamente actualizables dependiendo de la tabla base. Como un simple ejemplo:
CREATE VIEW dbo.vNewName
AS
SELECT Column1, NewColumnName = OldColumnName
FROM dbo.OldName;
CREATE SYNONYM dbo.NewName FOR dbo.vNewName;
Luego, como anteriormente, cuando haya cambiado todas las referencias a columnas y al nuevo nombre de la tabla, simplemente:
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;
Si la aplicación no está activa y aún se está sometiendo a pruebas, simplemente cambie el nombre de las columnas y arregle lo que se rompe después de una búsqueda global y reemplace (o refactorice inteligente usando SSDT, RedGate, etc.) a través del código / procedimientos de la aplicación, etc.
Si la aplicación está en vivo, deberá avanzar un poco más cautelosamente.