1.要插入一个空记录前提条件是:表中的每一个字段必须都允许空值。
  insert into temp1 values(null,null);
  null值要和字段数匹配!
2.是否有时间?如果有的话作一VIEW然后用SELECT TOP即可!

解决方案 »

  1.   

    1、我的表中部分字段不允许空值,但有默认值或为自动编号类型,因此,不能用
    insert into table values (default,null,......)
       且插入句我用于一存储程中。调用过程时,表不同则字段也不同。此时怎么办??
    2、颠倒一下再 select top?太麻烦了。我想直接获取新添加的记录。否则在添加后选取前,再有一人添加了记录,那岂不是乱了?
      

  2.   

    刚解决:可用insert into Table default values 来添加空字段。
    但如何获得最后一个添加的记录呢?
      

  3.   

    那在插入一个新记录后,用select选取自动编号字段值最大记录前,万一又有人插入了数据,那我岂不是......
      

  4.   


    Eks兄实在不明白,你到底想问的问题是什么?对于插入空记录,chump的方法可行,如果你说是在存储过程中不行,我要问你为什么不改一改你那糟糕的procedure,比如 if @tcParamTableName='UsersTable' begin 。对于如何得知最新添加的记录,可以添加一个时间邮戳字段。对于添加新记录的关键字段问题,我觉得有两种方法可行,一种是CJZ的方法,用的时候是在点击确认存储按钮时才取最大值,当然不仅是慢,而且还是有可能发生错误,不过可能性很小。方法二是用流水号请号的方法(我也是学的),另建一个表(如:TableA)存储可用的最新关键字的值,使用时,调用存储过程,或在工作站上执行SQL语句,得到最新的ID,再经过一定算法,把计算出来新的ID存回TableA表中,备下次用,虽然有些笨拙,不过认真想起也不错。
      

  5.   

      对于关键字段问题,WILLIAMGUI说的不错,其中第二中方法我经常用,效果挺好,可用与同日期有关或无关的序号生成,错误很少!(可以说不存在)
      

  6.   

    使用:RS.open "select * from tablename where fieldname = null",objConn,3,3
         RS.addNew
         RS(field1) = "fsag"
         RS(field2) = "fsag"
         RS(field3) = "fsag"
         RS.update
         
    这样你就可以得到当前记录的所有字段值了(包括自动递增的id)
        
      

  7.   

    我的问题是:
    在一个网络数据库中插入一个空记录,记录中有一个字段是自动递增的ID。然后再对该记录进行编辑。因此,在完成插入后,能返回刚插入记录或是ID。
    我想用存储过程来完成以上过程。
    我现已在使用手动递增流水号的笨办法进行操作了,另建了一个流水号记录文件,用于存储当前流水号最大值。但我觉得存在一个问题:
    当用户1申请新建记录时,我读取了流水号,然后对流水号加一得出新的流水号,再写回原文件。但在我读出数据后、写回之前,用户2申请新建记录,又读取了原来的流水号。这样一来,这两个用户的流水号是重复的了。
    CJZ的方法也同样存在上述问题。
    我原想用加锁的方法解决,但我在SQL7.0中没找到锁。我现在只有在asp程序中使用application.lock。咋办???
      

  8.   

    Eks!!!!!
    使用:RS.open "select * from tablename where fieldname = null",objConn,3,3
        RS.addNew
        RS(field1) = ""
        RS(field2) = ""
        RS(field3) = ""
        RS.update    id = RS("id")
        
    这样你就可以得到当前记录的所有字段值了(包括自动递增的id)
       
    这也不行吗?我可是一直都用它解决此类问题的。
      

  9.   

    调用存储过程中的@@identity系统变量不行吗?
      

  10.   

    但同样存在数据共享及加锁的问题。
    在我插入记录后,调用@@identity前,有人插入新记录怎么办?