本帖最后由 wudeaaa 于 2010-06-28 09:52:04 编辑

解决方案 »

  1.   

    http://www.cnblogs.com/jhxk/articles/1614963.html
      

  2.   

    应该是触发器问题,你仔细看看你的删除语句,max(字段)
    根据这个条件删除的可能不只一条记录...
      

  3.   

    不是触发器的问题,是这样的:
    你使用图形化界面删除时,实际是生成了一条DELETE语句执行,如果你选择删除的记录在表中有一行或多行和它完全相同的记录,那用语句删除的就会是所有相同的记录,最终的结果就是你点一条删除,结果删了多条。所以MSSQL对这种情况就报个错,让你用语句删除。
      

  4.   

    肯定是这个原因没错,至于记录的合法性你自己验证就行了。这种情况除非表中的非法记录都没有了,不然不能用图形化界面删除的,只能用语句。
    你可以用语句判断一下有没有重复记录
    SELECT COUNT(1) FROM [表名]
    SELECT COUNT(1) FROM (SELECT DISTINCT * FROM [表名]) T
    如果一致说明没有重复记录
      

  5.   

    那就改用语句删除,DELETE FROM TB WHER COL1=.. AND COL2=.. AND ... AND COLN=..把所有列的值都写上就可以了。
      

  6.   

    使用sql语句是可以删除的,就是不知道是什么原因造成的。
      

  7.   

    求救啊 ,这个是不是Sql Server2005的bug?
      

  8.   

    加了主键,每行有个索引信息,图形界面删的时候可以根据索引信息去进行删除,所以可以正常定位行。而如果没有索引,它没法定位行,为了保证数据安全,所以不允许你删除。这个不应该算是BUG,反而应该算是微软的对数据安全的一个优化……