在SQL Server Management Studio中创建列数据唯一
问题描述:
假设我有一个包含多列的数据库。 有一个主键,用户。 但也有其他列,用户名。 当新的用户名输入到数据库中时,我想检查以确保它是唯一的。由于已有主键,因此可能需要对用户名进行限制。在SQL Server Management Studio中创建列数据唯一
我不知道如何做到这一点。当我右键点击列名并且弹出“索引/键”时,我看到“Users_Key”是现有主键,而不是“用户”。所以我必须添加诸如“Username_Keys”之类的东西?当我这样做时,我在Object Explorer中看不到它。但我确实在“Keys”下看到了Users_Key?
答
在SSMS中使用查询可以吗?
产地来源证,那么你可以这样做:
ALTER TABLE tablename
ADD UNIQUE (Username)
所在的表被称为tablename
和username列(你想成为唯一的)被称为Username
。
对于多列,像这样做:
ALTER TABLE tablename
ADD CONSTRAINT uc_NameofConstraint UNIQUE (column1,column2)
说实话,这是更好地做到这一点的第二种方式,因为您可能需要以后删除约束的某些原因。就像这样:
ALTER TABLE tablename
DROP CONSTRAINT uc_NameofConstraint
不要忘记,一个UNIQUE
约束有大小限制(我相信这是大约900个字节,但不是100%确定),所以一定要确保用户名不是列类型像NVARCHAR(MAX)
或者不会让你这样做!但是,无论如何,让任何人拥有超过100个字符的用户名称都是疯狂的!
Definitly第二种方法。那里有很好的工作Dommer,这对我帮助很大! – Pnct 2013-11-13 14:38:39