比如说 数据库中的ID  最大的是6了我要的效果就是 我点获取了ID,给我的数字是7(尽管我7没用),我在点获取,就给我8了,获取一次就自动增长(不是数据库中6下面的一个数字7),而是不管谁获取后,自动给ID增长。先谢谢高手

解决方案 »

  1.   

    没看懂。建立一个sequence?自动增长。
      

  2.   

    select max(id)+1 from zz
      

  3.   

    字段int ,标识为true,自动增量为1即可。无需设置值
      

  4.   

    嘿嘿,你这么做考虑过并发没有啊,你取得的最后的ID可能不是真正意思的最后的ID哦,这样的想法我以前也做过,如果多是用户的系统的话不好办哦,怎么解决还得看你的应用!
      

  5.   

    ID是自动编号的就用select max(id)+1 from Table 
      

  6.   

    用IDENT_CURRENT(),当前会话下的最后ID。
      

  7.   

    ID自增长的话用max函数就可以得到最大ID了
      

  8.   

    建议 不要使用sql自增字段达到你的目的,因为一旦删除内容,则字段编号也已被使用,可以从数据库里面去读最大的一个,然后加1啊
    select max(字段) from table +1
      

  9.   

    第一次获取最大的ID
    Select Max([ID]) From [TableName]之后,每次点获取就加1
      

  10.   

    这样考虑恐怕有问题呀,lz只要用户没有向数据库提交操作,数据库里最大的数值就是不变,提出来的最大值+1也就是唯一的即使自己写程序实现无论什么情况,都保持最大+1,但是这个得到的值,入库的时候,不一定是数据库里最大的值+1(同时多用户获取,但是有用户不提交)
    也就是说,通过程序实现的不是lz想得到的效果既然前台不好实现,就从库本身考虑吧
      

  11.   

    楼主的意思好像是要实现类似ORACLE中的sequence的功能,不过SQLSERVER好像是没有什么办法实现ORACLE中读取后自增的功能,只能人为实现。例如可建立一个临时表专门用来存放数据库中各表的序号,然后通过存储过程实现序号的读取和读取后的自增过程。
      

  12.   

    13楼 14楼 懂我的意思了,谢谢理解!正式要实现ORACLE中的sequence的功能  ,SQL2000里没办法吗?
      

  13.   

    第一次获取最大的ID 
    Select Max([ID]) From [TableName] + 1 之后,每次点获取就加1 
      

  14.   

    如果用到C#Winfrom窗体里应该怎么写呀