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

xar*_*rzu 2 sql-server ssms key

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

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

Tom*_*ler 7

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

那么你可以做到这一点:

ALTER TABLE tablename
ADD UNIQUE (Username)
Run Code Online (Sandbox Code Playgroud)

调用表的位置,并调用tablenameUsername列(您希望它是唯一的)Username.

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

ALTER TABLE tablename
ADD CONSTRAINT uc_NameofConstraint UNIQUE (column1,column2)
Run Code Online (Sandbox Code Playgroud)

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

ALTER TABLE tablename
DROP CONSTRAINT uc_NameofConstraint
Run Code Online (Sandbox Code Playgroud)

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