SELECT @@IDENTITY
 in SQL

解决方案 »

  1.   

    用ExecuteScalar执行
    Select max(ID) from table
      

  2.   

    也可以用ExecuteScalar执行SELECT @@IDENTITY
      

  3.   

    用存储过程,创建一个output的参数
    用这个参数返回@@identity
      

  4.   

    dim cnn as oledbconnection
    dim cmd as oledbcommand
    strsql="insert into tables("datafield")values(...)"
    cnn.open()
    cmd=new oledbcommand(strsql,cnn)
    cmd.executenonquery
    strsql="Select max(ID) from table"
    cmd=new oledbcommand(strsql,cnn)
    cmd.executenonquery
    cnn.close
      

  5.   

    insert into aaa values('aaa','bbb')select @@identity from aaa
      

  6.   

    46539492(HAPPY.NET) : 
      

  7.   

    46539492(HAPPY.NET) 
        Select max(ID) from table,这方法是不对的,如果有很多人在同时操作这个表,你刚刚插入而另一个人马上删除的话,你取得的就不是下一次要插入的ID别外     Nicholasqpl(你快乐,所以我快乐) 的
    insert into aaa values('aaa','bbb')select @@identity from aaa
    这什么样的INSERT语句啊,请指点迷津我以前也遇见过这样的问题,知道在SQL中可以用@@identity
    可是在ACCESS中怎么用,似乎不能用@@identity吧
      

  8.   

    长风,你是指这样?
    insert into table(ID,NAME) value (@@identity,@Name);
    我试过,不行啊。
      

  9.   

    用ExecuteScalar
    sql:
    create procedure insertuser
    @Name varchar(10)
    as
     insert into table1 (name) value(@Name)
         select @@identity
    go
      

  10.   

    insert into table(name) values ("name") select distinct @@identity maxid from table
    其中distinct 将保证只返回一条记录
    自动增长的ID不要去管它
      

  11.   

    上面方法绝对可以,上述语句将返回一个数据集,你去取maxid的值就可以了
      

  12.   

    上面是针对主键是自动增加的情况所做的处理,那其实是两个SQL语句,合成一起写了,是同步执行的,不加锁不会有问题的.
      

  13.   

    insert into ... select @@identity as KeyID