独自の制約がテーブルの列
-
03-07-2019 - |
質問
んテーブル(既存のテーブルデータで、そのテーブル内のカラムをユーザ名です。私は、このユーザー名ます。私は追加の制約のようになります:
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
この結果をリストにユーザーのすべてを1としてNumberOfUsers.うな重複あります。がんチェックしたユーザー名に失敗したった場合は、以下のような結果:
beluga
béluga
でapperentlyた失敗を比較し、"e"と"é"または"è"...このように彼を無視したら、本当にありがとうるsqlいを無視するこれらのアクセントを追加する場合には、ユニークキー contraint.
【解決
THXに皆さんがその場で発音を確認することがソリューションとなります。この問題を修正:
ALTER TABLE Users
ALTER COLUMN UserName nvarchar(250) COLLATE SQL_Latin1_General_CP1_CI_AS
解決
の照合を使れを無視した場合、アクセントの場合との比較.ご変更が必要なの照合。
Latin1_General_CI_AI
を無視した場合、アクセントLatin1_General_CI_AS
なアクセントを無視する
リストのSQLサーバー名照合 こちらの.
他のヒント
お問合せ団体によるユーザidもいする必要があります。
用途:
SELECT COUNT(*) as NumberOfUsers, UserName
FROM Users
GROUP BY UserName
ORDER BY UserName
お問合いいただけます。ユーザーが同じ名前と同じユーザのIDとなります。やもめのデータによる COUNT(*)
では最後の行が表示されたが、トラブルメーカー?
きも問題を抱えてい照合してその他が示唆されているが、通常、グループのように自己整合するようにします。
おそらくユーザidはその有効なタイプを利用します。その一部はグループ化により、保証を得単列ります。の"ユーザ名"欄にごグループです。
としてのアンドリュー-バレットは、デフォルトの照合にMySQLいを認識しないアクセントに正しく
変更の照合の分野 UTF8_unicode_ci
ではアクセントに。
ciとは大文字と小文字を区別しませんが、ご利用できるので、異なる照合が行なわれた場合は重要です。
を作成できる新しいテーブルとの照合、そのコピー*は、既存のテーブルに新しい。
また、も作成できますだけのテーブルにご関心をお持ちになられた方は該照合の代わりに、サーバーいたしました!できるように:
CREATE TABLE Users (c1 varchar (10), .., COLLATE Latin1_General_CI_AS NULL )