次のようなテーブル定義があります。
create table [Language](
Id int primary key identity,
Code varchar(11) not null unique,
NativeName nvarchar(50) not null unique
)
そして、そのテーブルに挿入するステートメントの長いリストがあります。NativeName
問題は、列の一意の制約でいくつかの挿入ステートメントが競合することです。奇妙なことに、コンテンツはまったくユニークではありません。たとえば、テーブルを空にして次のみを挿入した場合:
insert into Language (Code, NativeName) values('am', N'አማርኛ');
insert into Language (Code, NativeName) values('dv', N'ދިވެހިބަސް');
私は 2 番目の挿入を取得します。
Violation of UNIQUE KEY constraint 'UQ__Language__EB1957A5F98D1F9C'. Cannot insert duplicate key in object 'dbo.Language'. The duplicate key value is (ދިވެހިބަސް).
ユニコード文字がこれらの問題を引き起こしている理由を知っている人はいますか?