sql2000中怎么在数据中间插入一行数据~

ID 姓名 年龄
1 sss 15
2 fffff 20
3 ddd 16
如何在第二行和第三行之间插入一条记录呢 考虑了好久 我有个方案不知道可行不 就是 复制第三行数据到一个地方 然后删除第三行 在添加一条记录 在把第三行复制回来(具体实施不会了呵) 或者有其他方案的 指点一下 谢谢大家
你好是这样的 我的ID是自动扩展的 按照楼下那位说的我就明白了 数据行是固定的然后用序号进行排列 我的ID 现在是1 2 3 是不是要改成2 4 6 8 这样的 然后插入的时候插入一个“7” 序号的 排列的时候自动就“显示插入了”的效果了呢 2 4 6 7 8这样了 对吗 另外我可以把ID设置成主键码 本人刚接触SQL 小白呵 简单的说我要实现我项要的效果的话 当然我的理解开始是错误的 是不是就是索引排列就能解决呢 具体解决方法呢 (有个新方法 直接设置ID列为 10 自动扩展为10 效果是 10 20 30 这样的 在添加一条设置ID列为15 这样就实现了在 中间插入的效果 但是ID列得重新排列一下也就是还原成 10 20 30 40 (原来的15变成了20 )这样的 但是重新排列ID列自动扩展怎么写哦)

楼上说的部分是对的,但有几点需要指出。如果你的id字段是自增的标识字段的话,它的序号是不可逆的(我说的是自动,当然手动可是实现重新顺序编号),再就是sql200中你不能在两行记录之间再插入一行的(让新插入的记录再原记录之间)。
1、像你说方法在形式上可以达到预想的效果:看上去好像在原来的第2行记录与第3行记录之间“插入”了一条新记录,但是前面的ID列(如果是自增的话)是不会再按1、2、3、4的顺序重新编号的,他是不会自动重新顺序编号的,他会变成1、2、4、5……
2、你的想法是完全没有必要的。对于数据库每条记录之间是完全平等的关系,不管数据库中谁在上谁在下。数据库只是一个存放数据的仓库,如果要向用户展示里面的数据的话是要用视图或者查询的,不会直接取数据表中人为的找的,要是那样也就失去数据库的本质变成了一般的数据文件了。
3、数据库一般都会结合某种应用程序联合应用,起到快速检索用户所需数据的作用,并能实现一定的排序、分组、统计等功能。
综上建议你不要继续你的工作。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
关系数据库不关心数据的物理存储顺序,所以不能像EXCEL一样将一行数据插入到指定行之前。
建议你在表上增加一列排序列,在输出的时候按照排序列进行排序。
ID 姓名 年龄 Sort_Order
1 sss 15 10
2 fffff 20 20
3 ddd 16 30
插入新行时指定 Sort_Order值在10和20之间就行。例如:
insert into 表名 vaules(4, 'eee', 18, 25)追问

你好 马上完成了在帮我下 马上结贴呵 你说的 insert into 表名 vaules(4, 'eee', 18, 25) 这样确实能解决 但是ID列是自动递增的话 手动去更改ID值无法更改 直接 INSERT INTO添加可以吗 也就说 ID 10 20 30 这样的 然后插入一行后 ID是 25 那么就实现了“插入行的” 功能 就是用排列的功能实现了谢谢你 QQ 3881880807 加我下可以吗

追答

ID列仍然保留,增加辅助列sort_order。ID列的值自动增长,但是sort_order列可以任意改动。输出时按照sort_order列排序。

追问

SORT_ORDER列排序的话 我理解咯 是这样的 如果添加一行的话 ID列是自动扩展 STORT里面的值怎么写啊 也设置为自动扩展不行吗 初始种子10 扩展10 10 20 30 这样的 然后添加的时候加入15 然后 重新在排序下 10 20 30 40 添加的15变成了20 行吗

追答

sort_order不能设成自动扩展的标识列,一旦设置了标识列,就不能用insert语句显示地插入值了。
另外插入的15也不会自动变为20.
LZ不要为了排序的问题太纠结。这个问题没有多少实际的应用意义。

本回答被提问者采纳
第2个回答  2011-04-01
您的方案估计不太好,假如有1000条数据,那么怎么办,需要复制1000条数据么?肯定不是。
其实我觉得,或者以我的经验来说,数据库表只是装着数据,具体存放在哪其实无关紧要,数据库是为别的应用程序做服务的,所以可以在程序中想象如何理想化的调用数据。比如,做好排序,可以增加一个字段,专门做排序用的,里面放上数字。或者增加时间日期字段,然后做相应的调整。总之我的意思就是在数据读出的时候进行调整。否则这次您需要在2,3之前插数据,下回再5,6之间插入数据,那岂不是很麻烦,所以,设计好数据库,和良好的读取数据准则很重要。希望可以帮到您。
第3个回答  2011-04-02
首先要确定这个表的ID是不是可以更改,看情况这个ID只是一个序号而已。
然后把需要插入的记录以下的ID值全部+1,UPDATA什么的,这个自己写吧。
然后INSERT INTO什么的插入需要的行。
第4个回答  2011-04-01
估计不太好,假如有1000条数据,那么怎么办,需要复制1000条数据么?肯定不是。
其实我觉得,或者以我的经验来说,数据库表只是装着数据,具体存放在哪其实无关紧要,数据库是为别的应用程序做服务的,所以可以在程序中想象如何理想化的调用数据。比如,做好排序,可以增加一个字段,专门做排序用的,里面放上数字。或者增加时间日期字段,然后做相应的调整。总之我的意思就是在数据读出的时候进行调整。否则这次您需要在2,3之前插数据,下回再5,6之间插入数据,那岂不是很麻烦,所以,设计好数据库,和良好的读取数据准则很重要