假设我有一个包含多个列的数据库。有一个主键,Users。但是还有另外一列,用户名。当一个新的用户名输入到数据库中时,我想检查以确保它是唯一的。由于已经有一个主键了,也许我需要对用户名进行限制。
我不知道该怎么做。当我右键单击列名并显示"Indexes/Keys"时,我看到的是现有主键的"Users_Key",而不是"Users"。所以我必须添加一些类似"Username_Keys"的内容?当我这样做时,我在对象资源管理器中的任何位置都看不到它。但我确实在"密钥"下看到了Users_Key?
可以在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个字符都是疯了!