Tôi đang cố gắng chuẩn hóa tất cả các cơ sở dữ liệu trên một đối chiếu duy nhất - Latin1_General_CI_AS (đối chiếu chuẩn). Tôi có một số cơ sở dữ liệu nằm trong SQL_Latin1_General_CP1_CI_AS.
Tôi biết tôi có thể sử dụng ALTER DATABASE để thay đổi đối chiếu cơ sở dữ liệu, nhưng điều đó chỉ ảnh hưởng đến các đối tượng mới. Hiểu biết của tôi là cách duy nhất để thay đổi các cột hiện có là thực hiện ALTER COLUMN trên mỗi cột trong mỗi bảng - và tôi sẽ cần bỏ và tạo lại tất cả các chỉ mục để thực hiện điều đó.
Tôi đoán nó sẽ trông giống như thế này:
DROP INDEX indexname ON tablename
GO
ALTER TABLE tablename ALTER COLUMN columname varchar(50) COLLATE Latin1_General_CI_AS NULL
GO
CREATE CLUSTERED INDEX indexname ON tablename (columname ASC)
và lặp lại cho mỗi cột varchar, char, text, nvarchar, nchar và ntext trong toàn bộ cơ sở dữ liệu. Đó sẽ là một tập lệnh SQL khổng lồ .
Có cách nào dễ dàng hơn để làm điều này không, hoặc có ai có thể đề xuất một cách tự động hóa việc tạo tập lệnh SQL để làm việc đó không?