爱问知识人 爱问教育 医院库

在SQL数据库的表里面如何删除第N条记录?

首页

在SQL数据库的表里面如何删除第N条记录?

表未设主键,无索引,也无ID
痛苦啊!老师出的作业题怎么那么难搞啊!

提交回答
好评回答
  • 2007-03-24 14:51:30
    这样的表就是一堆表,你的老师有没有提出其它的删除要求呢?
    如果没有,要删除指定的第N条记录,尝试以下方法试试吧:
    1、要删除的第N条记录中,是否有可以作为delete的where唯一条件。
    2、如果没有满足1条件,可以使用PB之类的程序,用DW检索出这个表数据,然后用代码编程,删除指定的第N条记录后提交。
    3、或者利用数据库的导出功能,将这个表中的数据导出为文本文件,用编辑器删除指定的第N条记录后,然后重新导入(导入之前,将原表清空)。
    其它的,也想不出别的什么招了! :(
    

    心***

    2007-03-24 14:51:30

其他答案

    2007-03-26 15:54:46
  •   我想问一问:主键,无索引,也无ID,有唯一性约束吗?如果就连唯一性约束都没有,表中的数据存在顺序吗?你所能看到的是一种逻辑上的顺序而已,当依赖于某键而改变的时候(比如主键),自动以其排序,建立排序规则,而没有任何依赖(没有头)的表数据是杂乱无章的,重复性也无法拒绝,更加谈不上什么编码规则等问题。
      就我个人认为这种表是建立得很失败的,我也相信工程开发没有人愿意这样建立表。如果有唯一性标识(并只以一个键唯一性标识):-------------------------------------------SQL代码 (20)--这里默认为20位,可自己定义 唯一标识字段from表名称--默认为第五条delete表名称where唯一标识字段------------------------------------------系统自动删除第5条记录,若要删除其他,就改参数就可以了,然而,Unique为多个字段的组合,就需要在变量设置多个,where条件用and隔开-------------------------------------------对于你一个标识也没有的情况我也有办法,不过算法有点麻烦,如果上面大哥的代码好用,建议不要用我的代码:假设已经建立表:USER_BASE_INFO字段有:1、USER_IDvarchar(30),2、USER_NAMEvarchar(50)--------------------------------------------createtable#USER_BASE_INFO([ID]INTidentity(1,1),[USER_ID]VARCHAR(30),[USER_NAME]VARCHAR(50))GOINSERTINTO#USER_BASE_INFOSELECT*FROMUSER_BASE_INFODELETE#USER_BASE_INFOWHERE[ID]=5DELETEUSER_BASE_INFOINSERTINTOUSER_BASE_INFOSELECT[USER_ID],[USER_NAME]FROM#USER_BASE_INFOGODROPtable#USER_BASE_INFO-------------------------------------如果你愿意也可以用游标做,不过就更加麻烦了,因为游标始终和这个表关系,若表改变,游标也改变。
      算法我十分复杂。上述方法是用临时表在做中间件,但不好,因为一旦数据量增加,速度将不可预测。

    小***

    2007-03-26 15:54:46

  • 2007-03-25 17:33:44
  • delete from (select identity(1,1) as id,* from tablename) tmpTable where tmpTable.id = N
    "N" 为第N条记录.

    p***

    2007-03-25 17:33:44

类似问题

换一换
  • 数据库 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):