3

間違った照合順序で作成されたデータベースがあります。データベースの照合を変更しましたが、個々の列の照合も正しくありません。これは私に問題を引き起こします。

そこで、個々の列の照合順序をループして変更するスクリプトを作成しました。これは、それぞれのテーブルのクラスター化インデックスの一部であるいくつかの列を除いて、基本的に機能しました。これらは私が変えることはできません。

たとえば、私が実行した場合:

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 を削除できると思いますが、削除したくありません。

4

1 に答える 1

2

すべての依存関係を削除する必要があります。

DB 照合順序を変更すると、システム テーブルのみが変更されます。他のすべてのテキスト タイプの列は、手動で変更する必要があります。

一般に、MS KB 325335には、データベース全体とすべての列に対してこれを行う方法に関するオプションがあります。

于 2009-02-24T12:22:51.190 に答える