Изменить параметры сортировки в столбце кластеризованного индекса в SQL 2005

У меня есть база данных, созданная с неправильным сопоставлением. Я изменил сортировку базы данных, но это также оставило отдельные столбцы с неправильной сортировкой. Это вызывает у меня проблему.

Итак, я написал сценарий для циклического просмотра и изменения сопоставления отдельных столбцов, и это в основном сработало, за исключением нескольких столбцов, которые являются частью кластерного индекса в соответствующих таблицах. Я не могу этого изменить.

Например, если я бегу:

ALTER TABLE MyTable 
ALTER COLUMN MyColumn varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL

Я получаю ответ:

Msg 5074, Level 16, State 1, Line 1
The object 'DF_MyTable_MyColumn' is dependent on column 'MyColumn'.
Msg 5074, Level 16, State 1, Line 1
The object 'PK_MyTable_MyColumn_MyOtherColumn' is dependent on column 'MyColumn'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE ALTER COLUMN deleted failed because one or more objects access this column.

Есть ли способ обойти это, чтобы изменить сопоставление этих столбцов? Очевидно, я не могу отбросить индекс, поскольку он составляет первичный ключ. Я полагаю, что мог бы временно удалить ПК, но я бы предпочел этого не делать.

Ответов (1)

Вы должны удалить все зависимости.

Когда вы меняете параметры сортировки БД, вы меняете только системные таблицы. Все остальные столбцы текстового типа необходимо изменить вручную.

Как правило, MS KB 325335 имеет варианты того, как это сделать для всей базы данных и всех столбцов.