使varchar(50)列唯一



我有一个列(它代表电子邮件)在一个SQL Server数据库与varchar(50)作为数据类型,我想使它唯一(不允许相同的两个电子邮件地址)。我无法找到一种方法,使这样的列唯一的SQL Server管理工作室。

怎么做?

在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])
从这个:

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

最新更新