sql server 2008 设置复合唯一键 多列复合构成唯一 的两种姿势

时间:2021-04-14 00:38:21

labelAddr   partNr   workstationId versionId 这四个每个单独出来都可以重复 但是不能四列完全相同

而此时他们的主键是一个自增的id  因此不能控制其唯一性

sql server 2008 设置复合唯一键 多列复合构成唯一 的两种姿势

所以要新增一个复合唯一键

右键该表 设计

空白处 右键 索引/键


sql server 2008 设置复合唯一键 多列复合构成唯一 的两种姿势


添加

sql server 2008 设置复合唯一键 多列复合构成唯一 的两种姿势


sql server 2008 设置复合唯一键 多列复合构成唯一 的两种姿势

确认 保存



第二种 sql语言


ALTER TABLE  [autowork].[dbo].[ELabelOnForPartOnWorkstation] add constraint labelAddr_partNr_workstationId_versionId_to_unique unique(labelAddr,partNr,workstationId,VersionId)

其中[autowork].[dbo].[ELabelOnForPartOnWorkstation]是表名

labelAddr_partNr_workstationId_versionId_to_unique是自定义的约束名

labelAddr,partNr,workstationId,VersionId是列名




ps:如果出现错误

因为发现对象名称'%.*ls'和索引名称'%.*ls'有重复的键,所以CREATEUNIQUEINDEX语句终止。重复的键值为%ls。

说明现有表中存在重复的数据,先根据提示 删掉重复项

就可以正常保存了