使varchar(50)列唯一

时间:2011-12-09 13:21:35

标签: sql-server unique varchar

我在SQL Server数据库中有一个列(代表一封电子邮件),varchar(50)作为数据类型,我想使其唯一(不允许相同的两个电子邮件地址)。我找不到在SQL Server Management Studio中使这个列唯一的方法。

怎么做?

3 个答案:

答案 0 :(得分:31)

在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

答案 1 :(得分:6)

在表格下方的Object Explorer中,右键点击Indexes文件夹,然后选择New Index...

在显示的窗口中输入Index name:,勾选Unique复选框,然后从Add...按钮添加电子邮件字段,然后点击确定。

答案 2 :(得分:1)

试试这个:

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

由此:

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