在SQL数据库的表里面如何删除第N条记录?
表未设主键,无索引,也无ID 痛苦啊!老师出的作业题怎么那么难搞啊!
这样的表就是一堆表,你的老师有没有提出其它的删除要求呢? 如果没有,要删除指定的第N条记录,尝试以下方法试试吧: 1、要删除的第N条记录中,是否有可以作为delete的where唯一条件。 2、如果没有满足1条件,可以使用PB之类的程序,用DW检索出这个表数据,然后用代码编程,删除指定的第N条记录后提交。 3、或者利用数据库的导出功能,将这个表中的数据导出为文本文件,用编辑器删除指定的第N条记录后,然后重新导入(导入之前,将原表清空)。 其它的,也想不出别的什么招了! :(
我想问一问:主键,无索引,也无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-------------------------------------如果你愿意也可以用游标做,不过就更加麻烦了,因为游标始终和这个表关系,若表改变,游标也改变。
算法我十分复杂。上述方法是用临时表在做中间件,但不好,因为一旦数据量增加,速度将不可预测。
delete from (select identity(1,1) as id,* from tablename) tmpTable where tmpTable.id = N "N" 为第N条记录.
答:(access数据库为例)单条删除的sql语句: delete * from 数据库表 where id = 1 删除id为1的数据 delete * from...详情>>
答:不知道你是不是写错文件名了,pdf?详情>>
答:当电脑的全部组件(包括软件)我们国家都能生产的时候。详情>>