下面是我用sql server2000 做的插入数据的主要的三行代码,已经稳定运行5年,最近出现了一个特别怪的问题。正常插入的数据都是追加到数据表的最后一行的,但是最近当数据库有一些数据后,插入的数据不再存到数据表的最后一行,而是在表中任意位置随便插入,比如17日的数据插到9日前面几行,然后又插到7日前面几行,而且一点规律也没有。该如何写才能保证新写入的数据在数据表的最后呢?????ConnectionPtr cn m_rtSQL.Format("insert into rt%s%.2d values",m_strPipeCode,m_RTData.oleTime.GetMonth());
cn->Execute((_bstr_t)rtSQL,&vRows,adExecuteNoRecords);

解决方案 »

  1.   

    写个事务
    设置一个自增列 在插入的时候判断ID与最后一个ID相等不 相等就插入 不然就回滚
      

  2.   

    在foxpro 里好像有了索引后,插入总是在最后一条的
      

  3.   

    5年了,一直插在最后的,只是最近实时存储的数据量大了,才出现这个问题的!fredrickhu,我能用时间来判断吗?我的数据表里有时间列
      

  4.   

    fredrickhu,如果像你说的写事务判断,不会影响到实时存储的速度吗?
      

  5.   

    sql server的数据不存在最后一行或是第一行的概念.
    所谓的显示的行,是根据排序(索引)来定的.
    所以,目前你的数据的插入不影响你系统的正常运行.
      

  6.   

    这个是正常的。
    重新建立一张表,然后建立上聚集索引insert into 新表
    select * from 旧表然后把旧表删掉,新标rename