用insert into 语句向SQL 数据表中插入记录时,如何让其按照插入时的顺序排列?(50分)

  • 主题发起人 主题发起人 libaoliang
  • 开始时间 开始时间
L

libaoliang

Unregistered / Unconfirmed
GUEST, unregistred user!
用insert into 语句向SQL 数据表中插入记录时,如何让其按照插入时的顺序排列?<br>如下面的代码:<br>adoquery1.close;<br>adoquery1.sql.clear;<br>adoquery1.sql.add('insert into bb1 select bm,xm,js from b1');<br>adoquery1.execsql;<br>adoquery1.close;<br>adoquery1.sql.clear;<br>adoquery1.sql.add('insert into bb1 select bm,xm,js from b2');<br>adoquery1.execsql;<br>adoquery1.close;<br>adoquery1.sql.clear;<br>adoquery1.sql.add('insert into bb1 select bm,xm,js from b3');<br>adoquery1.execsql;<br>实际上查看bb1中的数据记录时,其顺序并没有按照程序执行时的顺序排列,<br>或者说,其顺序有些混乱,怎样才能按照插入时的顺序排列?
 
如果BB1表定义了主键,默认情况下,打开表后是按主键排序的,所以会导致插入后的记录是按 b1/b2/b3重新排序了的。有两种方法可以解决<br><br>1、给表bb1定义一个自增字段,并作为主键(插入语句需作少许修改),这样记录肯定是按插入顺序排列的。<br>2、取消表BB1的主键定义(如需保证主键唯一,可定义为唯一索引),这样默认打开后是照插入顺序排列的。
 
levi:<br>请明确一下:<br>或写上代码,<br>分都给你.
 
sql 支持这么丰富的索引和排序功能,数据记录的物理位置还有这么重要吗?
 
数据库中表是一个集合的概念,没有顺序之说,<br>查看时如何排列是你取出数据时的索引决定的,<br>如果需要按插入顺序查看,<br>可以增加一个记录“插入时间”的字段
 
按levi的方法做就得<br>只是在bb1中加入一个ID
 
我是想按照插入时的顺序显示BB1中的的数据的,<br>由于BB1中的数据是从多个表中插入数据,为方便查看,在每次<br>插入数据后,再插入一条空记录,<br>这样在显示数据时就比较直观,有条理,<br>select * from bb1<br>而按照我上面贴出的代码插入记录后,<br>再查看记录时,顺序是混乱的,没有按照插入时的顺序排列,<br>而且是变化的,即查询一次是一个排列结果,这样很不好,所以我想用下面的<br>代码检索BB1中的记录时,希望完全是按照插入数据时的顺序显示,大家看<br>在不增加表字段的情况下有什么好办法?
 
加个自增长的ID字段就好了,然后这个ID就可以实现你的排序了
 
请理解sql
 
DIGUA:<br>&nbsp; &nbsp; 我记得在access的数据表中有自增字段,<br>&nbsp;在SQLSERVER2000中没找到啊?<br>新建一个字段后,如何把其设置为自增字段?
 
数据类型设置为int<br>属性中的“标识”设置为“是”
 
要按插入順序排序,要加入一個字段記錄插入先後順序才行啊<br>有兩種啊<br>要麼加一個自增字段排序,要麼加一個時間字段帶毫秒的<br>插入時,插入getdate()的值就可以了,然後按這個排序<br><br>其他的方法,不知道哦
 
stlont &nbsp;正解
 
谢谢大家!
 
后退
顶部