在sql2008里插入一条记录,假定这个表就一个字段:line,现在我想让这个line自动加1.
insert into tb (line) values isnull(max(line),0)+1
这条语句在数据库里执行,提示“line”无效。这个line是max(line),这是怎么回事儿?我的数据库里有数据,当我单独执行这句话的时候检索结果没问题:select isnull(max(line),0)+1 as line from tb

解决方案 »

  1.   

    insert into tb (line) 
    select isnull(max(line),0)+1 from tb
      

  2.   

    insert into tb select isnull(max(line),0)+1 from tb
      

  3.   


    确实是这样写就没问题,可是不明白为什么不能用values
      

  4.   

    values(xxx,xxx,xxx) ,xxx必须是一个具体的值
    所以必须
    insert into tb (line) values ((select isnull(max(line),0)+1 as line from tb))
      

  5.   


    values是以行为单位的结构输入,且要是确切数据的
      

  6.   

    insert into tb values (isnull((select max(line) from tb),0)+1)