如题,我的目标是这样的:在给一个表添加新列时同时设置这个列中的值是唯一的,也就是再往这个列写数据时保证数据不重复。
如果不行的话,另外用语句设置也行,但是我这出错,因为发现对象名称和索引名称有重复的键,,,,
请高手赐教
------解决思路----------------------
如果你表中已有多条数据,这显然是做不到的
你在新加列后,要更新这个列的数据为不重复的值
才能加唯一约束
或者 你新加的列是自增列
------解决思路----------------------
一楼说的很对
后期
如果是要对某一列增加 UNIQUE 约束,可以通过 MODIFY 的方式处理。
如果是对多个列增加 UNIQUE 约束,通过 新增一个 UNIQUE 的约束实现。
------解决思路----------------------
一个最笨的方法:
添加一新的列. 先不要设置成主键;
保存, 游标插入自增数据到该列;
再设置该列为主键.
------解决思路----------------------
如果你数据纪录已经有一列的数据是不重复的,或者找出几个字段一起时, 不重复,
比如数据表总纪录50000行, 查询列 aa, bb group by aa, bb 纪录仍然有50000.
那可以用这个方法插入自增的数据.
DECLARE @aa nvarchar(50),
@bb nvarchar(50),
@tmp int
DECLARE cur CURSOR FOR
SELECT aa, bb from tbl1 order by aa
OPEN cur
FETCH NEXT FROM cur INTO @aa, @bb
Set @tmp = 1
WHILE @@FETCH_STATUS = 0
BEGIN
update tbl1
set abc = @tmp where aa=@aa and bb=@bb
set @tmp = @tmp + 1
FETCH NEXT FROM cur INTO @aa, @bb
END
CLOSE cur
DEALLOCATE cur