Я намагаюся стандартизувати всі бази даних на одному зіставленні - Latin1_General_CI_AS (стандартне порівняння). У мене є деякі бази даних, які знаходяться в SQL_Latin1_General_CP1_CI_AS.
Я знаю, що я можу використовувати ALTER DATABASE для зміни зібрання бази даних, але це впливає лише на нові об'єкти. Я розумію, що єдиний спосіб змінити існуючі стовпці - це зробити ALTER COLUMN на кожному стовпчику кожної таблиці - і мені потрібно скинути і відтворити всі індекси, щоб зробити це навіть.
Я думаю, це виглядатиме приблизно так:
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)
і повторіть для кожного вархара, символу, тексту, nvarchar, nchar та ntext стовпця у всій базі даних. Це був би величезний сценарій SQL.
Чи є простіший спосіб зробити це, чи хтось може запропонувати спосіб автоматизувати створення сценарію SQL для цього?