SqlServer 里有两条完全相同的记录,删除一条时提示:    键列信息不足或不正确,更新影响到多行!    怎么才能删除?那位碰到过???

解决方案 »

  1.   

    在企业管理器打开表中不能删除    删除语句当然不能用,因为完全一样,不能用SQL语句删除。
      

  2.   

    select distinct * into NewTable from OldTable
    delete OldTable
    insert OldTable select * from NewTable
    drop table NewTable
      

  3.   

    呵呵,这种情况我也遇到过,在查询分析器里
    用delete语句就可以了,这两条纪录就
    全没了
      

  4.   

    楼上跟我同名啊
    在查询分析器里用delete语句可以删除这两条纪录
      

  5.   

    回复人: sysu(死树) ( ) 信誉:108  2003-04-14 09:06:00  得分:0 
    select distinct * into NewTable from OldTable
    delete OldTable
    insert OldTable select * from NewTable
    drop table NewTable
    ==============================================================
    服务器: 消息 8163,级别 16,状态 3,行 1
    不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型。
     
      

  6.   

    酷鱼兄
    del语句会把两条都删了,而我要保留一条,所以不能用。
      

  7.   

    那就加个条件吧,比如有个id字段,那两条相同的记录id值为1:
    select * into NewTable from OldTable where id <> 1注意,如果报错说不能用select...into,则要先用下面语句允许使用select...into:
    sp_dboption [数据库名], [select into], [true]
      

  8.   

    忘了,上面select...into完后,再手工把那条记录添进去。
      

  9.   

    死树兄,我明白你的意思。但是SqlServer的意思是DISTINCT 不能用于Text  或image字段,而我表刚好有Text字段。不过,我把Text 改成Varchar,操作完成后 再把Varchar 改成Text解决了。