SQL怎么在已经创建的表中插入一列,对这一列进行唯一约束。
ALTERTABLEEmployeesADD邮箱VarChar(20)ALTERTABLEEmployeeswithnocheckADDCONSTRAINTUQ_Emai...
ALTER TABLE Employees
ADD 邮箱 VarChar(20)
ALTER TABLE Employees with nocheck
ADD CONSTRAINT UQ_Email1 UNIQUE (邮箱)
为什么出现
消息 1505,级别 16,状态 1,第 1 行
CREATE UNIQUE INDEX 语句终止,因为发现对象名称 'dbo.Employees' 和索引名称 'UQ_Email1' 有重复的键。重复的键值为 (<NULL>)。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅前面的错误消息。
语句已终止。
的错误???? 展开
ADD 邮箱 VarChar(20)
ALTER TABLE Employees with nocheck
ADD CONSTRAINT UQ_Email1 UNIQUE (邮箱)
为什么出现
消息 1505,级别 16,状态 1,第 1 行
CREATE UNIQUE INDEX 语句终止,因为发现对象名称 'dbo.Employees' 和索引名称 'UQ_Email1' 有重复的键。重复的键值为 (<NULL>)。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅前面的错误消息。
语句已终止。
的错误???? 展开
4个回答
展开全部
如果已经存在的表中是有数据的,那么你不能用一句SQL实现你的目标。
因为,如果表中已经有数据,那么你创建的新列,在已有的记录中要么是空值,要么是你设置的缺省值,因此所有记录中,该列的值都是一样的,因此对该列不能建立唯一性约束。
可采用两种做法:
1.删除原表的所有数据,就可以创建;
2.先不建立唯一约束,只建立列,然后给每行记录的该列赋于不同的值。
然后再设置该列为非空;
然后再为该列设置唯一约束。
因为,如果表中已经有数据,那么你创建的新列,在已有的记录中要么是空值,要么是你设置的缺省值,因此所有记录中,该列的值都是一样的,因此对该列不能建立唯一性约束。
可采用两种做法:
1.删除原表的所有数据,就可以创建;
2.先不建立唯一约束,只建立列,然后给每行记录的该列赋于不同的值。
然后再设置该列为非空;
然后再为该列设置唯一约束。
追问
表中并没有数据啊
追答
ALTER TABLE Employees ADD 邮箱 VarChar(20) not null
后面要加 not null,否则不能 unique 索引
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP函数在Excel中用于匹配两个表格的数据。具体步骤如下:1. 确定查找值:在目标表格中选择要查找的单元格或数据。2. 确定查找范围:转到另一个表格(例如,工作表A),并指定包含查找值的范围。注意该范围的首列应包含要查找的值。3...
点击进入详情页
本回答由TableDI提供
展开全部
唯一索引列的数据不能有空值,数据不能重复
追问
那要怎么才能实现上面的目的。
追答
两种处理方式:
法1、删除要建唯一索引列的为空数据,对重复数据进行去重,或直接删除重复数据。
法2、对空数据补唯一值,对重复数据的列值重新赋予唯一值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
刚没发现,你忽略掉他就行了,因为已经创建成功了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你这个字段加个默认值试试
追问
好像是不是有一个可以忽略之前已经输入的数据的语句啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |