使varchar(50)列唯一

Tom*_*mas 20 sql-server varchar unique

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

怎么做?

gbn*_*gbn 33

在T-SQL中它会是

ALTER  TABLE  MyTable WITH CHECK 
   ADD CONSTRAINT UQ_MyTable_Email UNIQUE (EmailAddress)
Run Code Online (Sandbox Code Playgroud)

或者作为显式索引

CREATE  UNIQUE INDEX IXU_Email ON MyTable (EmailAddress)
Run Code Online (Sandbox Code Playgroud)

编辑:我看不到如何在SSMS GUI中创建约束:其他答案显示如何管理索引.我只使用SQL,而不是用于此类工作的GUI

  • 要在 SSMS 中执行此操作,请右键单击表名称,然后从上下文菜单中选择“设计”。右键单击打开的设计窗口并选择索引键。在打开的对话框中单击“添加”按钮。突出显示新索引,如果需要,可以更改属性中的名称;将“Is Unique”属性更改为“yes”,然后更改类型“Unique Key” 单击“Columns”属性中的省略号,然后在弹出窗口中使用下拉列表选择要唯一的列。关闭索引/键窗口并保存设计窗口。瞧 (3认同)

Bar*_*aye 6

Object Explorer表格下方右键单击该Indexes文件夹并选择New Index....

在出现的窗口中输入Index name:,勾选Unique复选框并从Add...按钮添加电子邮件字段,然后单击"确定".