テーブル (データが含まれる既存のテーブル) があり、そのテーブルには列 UserName があります。この UserName は一意にする必要があります。したがって、次のような制約を追加します。
ALTER TABLE Users
ADD CONSTRAINT [IX_UniqueUserUserName] UNIQUE NONCLUSTERED ([UserName])
今、重複したユーザーがこのテーブルに存在するというエラーが発生し続けます。しかし、次のクエリを使用してデータベースをチェックしました。
SELECT COUNT(UserId) as NumberOfUsers, UserName
FROM Users
GROUP BY UserName, UserId
ORDER BY UserName
これにより、NumberOfUsers として 1 を持つすべてのユーザーのリストが作成されます。したがって、重複はありません。しかし、ユーザー名を確認すると、彼は失敗し、次の結果が表示されます。
beluga
béluga
どうやら彼は「e」と「é」または「è」の比較に失敗しています...彼はこれらを無視しているようです.SQLが一意のキー制約を追加するときにこれらのアクセントを無視しない方法はありますか.
解決:
THX 皆さん、私は解決策を見つけました。これで問題が解決しました:
ALTER TABLE Users
ALTER COLUMN UserName nvarchar(250) COLLATE SQL_Latin1_General_CP1_CI_AS