0

SQL Server 2008 R2 Express を使用しており、インストール ウィザードで照合を選択しますModern_Spanish_CS_AS

データベースのプロパティに移動すると、新しいデータベースを作成すると、照合が正しいことがわかりますCS_AS.

ただし、選択を行うときは大文字と小文字が区別されず、一意の制約を作成すると、たとえば次の文字列を挿入できませuser01User01。データベースは大文字と小文字を区別しないためです。

サーバー、データベース、およびテーブルでは大文字と小文字が区別されるのに、選択と制約では区別されないのはなぜですか? 実際には、大文字と小文字は区別されません。

どうすればこの問題を解決できますか? すべてのデータベースで大文字と小文字が区別されることを望みます。

ありがとう。

4

1 に答える 1

1

このフォーラムの投稿を見て、一意の制約のフィールドが本当に大文字と小文字を区別することを検証します: http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/6de23802-eb3b- 4759-9d4d-a796c69e6271

フィールドの照合をクエリできます (テーブルが大文字と小文字を区別せずに作成された場合)。

select      name, collation_name
from        sys.columns
where       object_id in (select object_id from sys.objects where name = '<table name>') and name = '<field name>'

これで問題が解決しない場合は、返信してください。いくつかのテストを追加できます。

于 2013-05-16T18:20:39.290 に答える