2009-05-05 12 views
1

データベースの照合順序が変更されました。変更前のすべてのtext/varcharカラムは、データベースのデフォルトに設定されていました。 DBの照合が変更されたとき、データベースのデフォルトに設定された列が新しいDBの照合にリンクされたままであるとデフォルトで設定されていることが予想されます。しかし、私は、これらの列が実際に古い照合順序に具体的に設定されるように変更されたことに気付きました。データベースの照合順序を変更すると、DB(MS SQL)のvarchar/textフィールドの照合が更新されません

私はすべての列を更新するスクリプトを持っていますが、なぜこれらの列がdatabase_defaultのままでないのか、または少なくとも新しい照合順序に設定されているかに興味があります。だから私が持っている質問は次のとおりです:

1:なぜ列は更新されませんでしたか?

2:自動的に更新される方法はありますか?

答えて

2

私は最近、自分自身でこの問題に遭遇しました。データベースの既定の照合順序を変更すると、作成された新しいオブジェクトに対してのみ動作します。既存のオブジェクトは変更されません(ソース:Books Online - 「ユーザーデータベースで作成された新しいオブジェクトの照合順序を変更できますALTER TABLEのCOLLATE句を使用して変更することができます。 "

私にはわからないそれらを手動で更新する必要があります。here

+0

リンクをありがとうございます - 私はテーブルの列が更新されていないことに気付かないでしょう!オプションがMSによってすべて更新されない列。 この行は私の質問に答えます: "ALTER DATABASE COLLATEコマンドは、データベースの* DEFAULT *照合のみを変更します。既存のオブジェクト(例:列と表)の照合は変更されません。デフォルトが変更された場合でも照合順序が変更されます。 ありがとう! – Madeleine

関連する問題