SQL server 2005如何设置一个或几个字段唯一约束?

唯一约束是该字段的值不允许重复吗?
2024-12-20 18:43:58
推荐回答(3个)
回答1:

可用sql语句添加唯一约束
alter table 表名
add constraint 约束名 unique nonclustered(指定唯一约束的列名)
这样就可以了,我们都是用sql语句,在控制台也可以的!

回答2:

  唯一索引和约束
  唯一索引和其它索引本质上并没有什么不同,唯一不同的是唯一索引不允许索引键中存在相同的值。因为索引中每一个条目都与表中的行对应。唯一索引不允许重复值被插入索引也就保证了对应的行不允许被插入索引所在的表,这也是为什么唯一索引能够实现主键和候选键。
  为表声明主键或唯一约束时,SQL Server会自动创建与之对应的唯一索引。你可以在没有唯一约束的情况下创建唯一索引,但反之则不行。定义一个约束时,SQL Server会自动创建一个与之同名的索引,并且你不能在删除约束之前删除索引。但可以删除约束,删除约束也会导致与之关联的索引被删除。
  每个表中可以包含多个唯一索引。比如说AdventureWorks的Product表,含有四个唯一索引,分别是ProductID,ProductNumber,rowguid和ProductNameColumn,设置Product表的人将ProductID作为主键,其它三个作为候选键。
  可以通过Create INDEX语句创建唯一索引,比如:
  CREATE UNIQUE NONCLUSTERED INDEX [AK_Product_Name] ON Production.Product (
  [Name] );
  也可以通过直接定义约束创建唯一索引:
  ALTER TABLE Production.Product ADD CONSTRAINT PK_Product_ProductID PRIMARY KEY
  CLUSTERED ( ProductID );
  上面第一种方法,你Prodcut表中不能含有相同的ProductName,第二种情况表中不允许存在相同的ProductID。
  因为定义一个主键或是定义约束会导致索引被创建,所以你必须在约束定义时就给出必要的索引信息,因此上面ALTER TABLE语句中包含了”CLUSTERED”关键字。
  如果唯一索引或约束所约束的列在当前的表中已经含有了重复值,那么创建索引会失败。

回答3:

都设成主键