Tôi nghĩ rằng cách tiếp cận phụ thuộc vào việc (các) ứng dụng đang hoạt động hay nếu bạn vẫn đang thử nghiệm.
Đối với các bảng, cách tiếp cận an toàn nhất là tạo một từ đồng nghĩa bằng cách sử dụng tên mới. Bằng cách này, bạn có thể thay đổi (các) ứng dụng cùng một lúc (hoặc thậm chí một tham chiếu tại một thời điểm) mà không phải thay đổi tất cả chúng cùng một lúc. Bạn không phải bỏ từ đồng nghĩa và đổi tên bảng cho đến khi bạn tự tin rằng bạn có tất cả các thay đổi tại chỗ.
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;
Đối với các cột, nó là một chút phức tạp hơn. Thay vào đó, bạn có thể tạo các từ đồng nghĩa trỏ đến một khung nhìn, nhưng không phải tất cả các khung nhìn đều có thể cập nhật tùy thuộc vào bảng cơ sở. Một ví dụ đơn giản:
CREATE VIEW dbo.vNewName
AS
SELECT Column1, NewColumnName = OldColumnName
FROM dbo.OldName;
CREATE SYNONYM dbo.NewName FOR dbo.vNewName;
Sau đó, giống như trên, khi bạn đã thay đổi tất cả các tham chiếu đến các cột và tên bảng mới, chỉ cần:
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;
Nếu ứng dụng không hoạt động và vẫn đang trong quá trình thử nghiệm, chỉ cần đổi tên các cột và sửa lỗi bị hỏng sau khi tìm kiếm toàn cầu và thay thế (hoặc bộ tái cấu trúc thông minh sử dụng SSDT, RedGate, v.v.) thông qua mã / quy trình ứng dụng, v.v.
Nếu ứng dụng đang hoạt động, bạn sẽ cần phải cẩn thận hơn một chút.