使列数据在SQL Server Management Studio中独一无二

时间:2011-06-15 19:53:49

标签: sql-server key ssms

假设我有一个包含多个列的数据库。 有一个主键,用户。 但是还有另一个列,用户名。 当一个新的用户名输入数据库时​​,我想检查以确保它是唯一的。由于已经存在主键,我可能需要对用户名设置约束。

我不知道该怎么做。当我右键单击列名称并显示“索引/键”时,我看到现有主键的“Users_Key”,而不是“用户”。所以我必须添加像“Username_Keys”这样的东西?当我这样做时,我在对象资源管理器中的任何地方都看不到它。但我确实在“密钥”下看到了Users_Key?

1 个答案:

答案 0 :(得分:7)

在SSMS中使用查询是否可以?

然后你可以这样做:

ALTER TABLE tablename
ADD UNIQUE (Username)

表格被称为tablename,而用户名列(您希望它是唯一的)被称为Username

对于多列,请执行以下操作:

ALTER TABLE tablename
ADD CONSTRAINT uc_NameofConstraint UNIQUE (column1,column2)

说实话,最好是第二种方式,因为您可能需要稍后因某种原因放弃约束。像这样:

ALTER TABLE tablename
DROP CONSTRAINT uc_NameofConstraint

不要忘记UNIQUE约束有一个大小限制(我相信它大约是900字节,但不是100%肯定),因此请确保UserName不是像NVARCHAR(MAX)这样的列类型或它不会让你这样做!但是,无论如何,让任何人拥有超过100个字符的用户名都是疯了!