delete from tb a where where exists(select 1 from tb where name=a.name and sex=a.sex and id<a.id) and a.name='张三' and a.sex='男'
declare @i int
set @i=0
update tb set @i=@i+1,id=@i

解决方案 »

  1.   

    列表里把ID也取出来,不显示就是了,然后删除时取隐藏的这个ID
      

  2.   


    将表中ID也取出来呀,
    SELECT ID,序号=IDENTITY(INT,1,1),姓名,性别 INTO #TB FROM TB
    你显示的时候就按你的显示,查询出来,
    删除的时候就删除那两个ID不同就好了呀!!
      

  3.   

    前台取出数据的时候把你这条记录的ID也取出来,之后不显示就行了当删除操作的时候,把ID当做参数传过去就行了。。
      

  4.   

    回复3和5楼:隐藏ID是一个方法,但是我看了下面这个帖子,发现隐藏某一列也是很麻烦的啊:
    http://topic.csdn.net/t/20050531/12/4048234.html
    4楼的意思是不是做两个表?3楼的不是很明白,id<a.id?感觉是针对不连续id的表,id号一般比序号要大,所以用id<a.id?这样会不会把id=1的情况也删了?