2011-06-15 58 views
2

假设我有一个包含多列的数据库。 有一个主键,用户。 但也有其他列,用户名。 当新的用户名输入到数据库中时,我想检查以确保它是唯一的。由于已有主键,因此可能需要对用户名进行限制。在SQL Server Management Studio中创建列数据唯一

我不知道如何做到这一点。当我右键点击列名并且弹出“索引/键”时,我看到“Users_Key”是现有主键,而不是“用户”。所以我必须添加诸如“Username_Keys”之类的东西?当我这样做时,我在Object Explorer中看不到它。但我确实在“Keys”下看到了Users_Key?

回答

7

在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个字符的用户名称都是疯狂的!

+1

Definitly第二种方法。那里有很好的工作Dommer,这对我帮助很大! – Pnct 2013-11-13 14:38:39

相关问题