如何在 Sql Server 2008 中设置唯一约束 [重复]

Posted

技术标签:

【中文标题】如何在 Sql Server 2008 中设置唯一约束 [重复]【英文标题】:How to set unique constraint in Sql Server 2008 [duplicate] 【发布时间】:2012-12-20 18:43:09 【问题描述】:

可能重复:SQL Server 2005 How Create a Unique Constraint?Add unique constraint in SQL Server 2008 GUI?

我在 Sql Server 2008 中有一个名为 customer 的表。我想在电子邮件字段中添加一个唯一的约束,这样电子邮件就不会重复(不使用查询)。我尝试了如图所示的方式,但无法设置约束。请帮忙。

【问题讨论】:

@JonH 我可以。尝试刷新。 @ean5533 - 我的意思是它太小了,没关系,我去从帖子中抢走了 imgurl。 通过索引和键对话而不是检查约束来完成。 ***.com/questions/64981/… @ean5533 当我以***.com/questions/64981/… 尝试时,在电子邮件列上设置了唯一+主键。我有一个主键 custid .email 字段只需要唯一 【参考方案1】:

检查约束用于检查一行中的数据是否与公式匹配 - SSMS 是正确的,您不能在那里有一个空白的论坛。

您要做的是转到 Indexes/Keys 并在电子邮件字段上添加一个新索引并将其设置为 Is Unique=Yes 并输入 Unique Key(如 hvd 所建议的,您也可以从这里创建一个唯一索引通过选择 Type=Index)。

【讨论】:

认为仅设置“Is Unique”将创建唯一索引,而不是唯一约束。但是可以从同一个窗口添加独特的约束。【参考方案2】:

电子邮件不应为 TEXT 类型

【讨论】:

不知道你为什么要提到text?在 OP 的屏幕截图中,您可以在电子邮件后看到 va,表明它是 varchar 以防万一如果它是 TEXT 类型,则在您选择时它不会出现在列列表中 啊,明白你的意思了。【参考方案3】:

你可以这样做:

ALTER TABLE Comment ADD CONSTRAINT uc_Comment UNIQUE (CommentId, Comment)

CommentId 是 PK。

我相信它实际上为此创建了一个索引。

【讨论】:

以上是关于如何在 Sql Server 2008 中设置唯一约束 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

sql2005中设置字段属性时,如何设标识列(自增1)和必须唯一

如何在 sql server 中设置外键列的默认值?

如何在SQL Server 2008中放置子查询

在 Mac 上的 Dbvisualizer 中设置 SQL Server 连接

如何在不使用 Docker 或 Windows Server 2016 上的 Confluent 平台的情况下在 Kafka 中设置 Debezium SQL Server 连接器?

T-SQL:如何使单元格值唯一?