間違った照合順序で作成されたデータベースがあります。データベースの照合を変更しましたが、個々の列の照合も正しくありません。これは私に問題を引き起こします。
そこで、個々の列の照合順序をループして変更するスクリプトを作成しました。これは、それぞれのテーブルのクラスター化インデックスの一部であるいくつかの列を除いて、基本的に機能しました。これらは私が変えることはできません。
たとえば、私が実行した場合:
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.
これらの列の照合を変更するためにこれを回避する方法はありますか? 明らかに、主キーを形成するため、インデックスを削除することはできません。一時的に PK を削除できると思いますが、削除したくありません。