解决方法:
在Sql2005数据管理器页面-->新建查询-->执行脚本
或者在数据管理器页面-->指令操作-->执行脚本
--首先现将此表抛异常的字段主键删除!!!! 找到表-右键-设计或者修改表-找到ID,右键删除主键即可
--然后检查是否有重复
select ID from 表名 group by id having (count(1)>1) 或者 select code from 表名 group by code having (count(1)>1)
--有的话进行下面操作
--第一步
alter table 表名 add ids int identity(1,1)
--第二步
Begin
declare cursorTEMP SCROLL Cursor
for select ID from 表名 group by id having (count(1)>1)
declare @temp_Id uniqueidentifier 或者 declare @temp_Id navrchar(100)
OPEN cursorTEMP
FETCH NEXT FROM cursorTEMP INTO @temp_Id
while(@@FETCH_STATUS=0)
Begin
delete from 表名 where ids not in(select max(ids) from 表名 where id=@temp_Id)
and id=@temp_Id
--移动到下一条
FETCH NEXT FROM cursorTEMP INTO @temp_Id
End
Close cursorTEMP
DEALLOCATE cursorTEMP
End
--第三步
alter table 表名 drop column ids
--最后,再把对应列的主键设置回去!!! 找到表-右键-设计或者修改表-找到ID,右键设置为主键即可