Сделайте колонку varchar (50) уникальной - PullRequest
18 голосов
/ 09 декабря 2011

У меня есть столбец (который представляет собой электронную почту) в базе данных SQL Server с типом данных varchar(50), и я хотел бы сделать его уникальным (не разрешать одинаковые два адреса электронной почты). Я не могу найти способ сделать такой столбец уникальным в SQL Server Management Studio.

Как это сделать?

Ответы [ 3 ]

31 голосов
/ 09 декабря 2011

В T-SQL это будет

ALTER  TABLE  MyTable WITH CHECK 
   ADD CONSTRAINT UQ_MyTable_Email UNIQUE (EmailAddress)

Или как явный индекс

CREATE  UNIQUE INDEX IXU_Email ON MyTable (EmailAddress)

Редактировать: я не вижу, как создать ограничение в GUI SSMS:другие ответы показывают, как управлять индексами.Я использую только SQL, но никогда не использую GUI для такой работы

6 голосов
/ 09 декабря 2011

В Object Explorer под таблицей щелкните правой кнопкой мыши папку Indexes и выберите New Index....

В появившемся окне введите Index name:, установите флажок Unique и добавьте поле своей электронной почты с кнопки Add..., затем нажмите OK.

1 голос
/ 09 декабря 2011

Попробуйте это:

ALTER TABLE [dbo].[TableName] ADD CONSTRAINT UNQ__TableName__ColumnName UNIQUE ([ColumnName])

Из этого:

http://msdn.microsoft.com/en-us/library/ms191166.aspx

...