Изменение параметров сортировки для столбца кластеризованного индекса в SQL 2005 - PullRequest
3 голосов
/ 24 февраля 2009

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

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

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

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 Ответ

2 голосов
/ 24 февраля 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...