SQL Serverデータベースにデータ型としてvarchar(50)
を持つ列(電子メールを表す)があり、それを一意にしたい(同じ2つの電子メールアドレスを許可しない)。 SQL Server ManagementStudioでそのような列を一意にする方法が見つかりません。
どうやってするか?
T-SQLでは次のようになります
ALTER TABLE MyTable WITH CHECK
ADD CONSTRAINT UQ_MyTable_Email UNIQUE (EmailAddress)
または明示的なインデックスとして
CREATE UNIQUE INDEX IXU_Email ON MyTable (EmailAddress)
編集:SSMS GUIで制約を作成する方法がわかりません:他の回答はインデックスの管理方法を示しています。私はSQLのみを使用していますが、この種の作業にはGUIを使用していません
表の下のObject Explorer
で、Indexes
フォルダーを右クリックし、New Index...
を選択します。
表示されるウィンドウでIndex name:
と入力し、Unique
チェックボックスをオンにして、Add...
ボタンからメールフィールドを追加し、[OK]をクリックします。
これを試して:
ALTER TABLE [dbo].[TableName] ADD CONSTRAINT UNQ__TableName__ColumnName UNIQUE ([ColumnName])
これから: