24

最初は、SQL Server データベースをローカル コンピューターに作成しました。照合順序を に設定するLatin1_General_CI_AIと、すべてがうまく機能しました。完成した作品を Web ホスティング SQL Server に移動すると、問題が発生しました。別のデータベース照合順序が使用されています。では、今何ができるでしょうか?

もっと具体的に言うと、私は が必要ですLatin1_General_CI_AIが、彼らは を持っていCzech_CI_ASます。これら 2 つは、チェコ語の文字列を比較すると大きく異なります (驚くべきことに、正しい結果を得るには、チェコ語ではなく、一般的な latin1 が必要です)。

データベースの照合順序を変更しようとしたとき、サーバーは、それを行うユーザー権限がないと不平を言いました。サポートデスクに問い合わせてみましたがだめでした。私は自分自身を助けることができますか?

おそらく、単一のテーブル列ごとに独自の照合順序を持つことができるので、すべての文字列列を に設定する必要があるかもしれませんLatin1_CI_AI。しかし、これを行う方法がわかりません。データベースへの SQL アクセスしかありません (残念ながら、SQL Server Management Studio はありません)。

4

2 に答える 2

32

データベースの照合順序を変更するには

ALTER DATABASE MyDataBase COLLATE [NewCollation]

列の照合順序を変更するには

ALTER TABLE MyTable ALTER COLUMN Column1 [TYPE] COLLATE [NewCollation]

ただし、これをいつ実行できるかについては多くの制限があります。特に、列がいずれかのインデックスで使用されている場合、これは拒否されます。
場合によっては、SSMS でさらに多くのことができます。
構文ドキュメントには、制限がリストされています。

于 2012-08-30T22:16:07.663 に答える