我现在遇到的问题提如下:有一个任务派发的系统,一个任务有任务编码(主键)和其他信息并且有子,每个用户进入进行一个任务派发的时候,系统会自动根据日期生成一个编码,但编码的后五位是从1依次往上垒加的,如2008102100001这是第一个,后面的就应该是2008102100002,2008102100003....,并且在生成这些编码之前都是根据数据库中已有编码的值来进行计算的,比如数据库中已经有了最大编码2008102100009,这个时候如果有用户进系统进行任务的派发,那么他在派任务的页面所能看到的是2008102100010,这是不管有多上个用户进来派任务,他们所看到的编码都是2008102100010(当然如果由用户已经保存了编码2008102100010的话那就是2008102100011啦),这样就存在一个并发的问题,就是同时会有N多用户派的任务都是2008102100010,当然可以在他们保存的时候再从数据库中去比一下然后改变保存时的编码,我现在也是这么做的,但还是会出现并发的问题,而且要是两个用户同时保存同一个编码的任务时会产生进程冲突,各位大虾,能不能给出出招啊,怎么能更好的解决呢???先谢了!!
http://topic.csdn.net/u/20080807/17/73CC9C20-1FD8-4807-B9F4-590593C5A2FB.html
他肯定是唯一的.
用他来生成你们的编号,取出一个编号出来后生成你要的编号(格式化的)比如你可以单独建一个表,里边就放一个自增字段,每次生成编号就往这个表中insert一条数据,然后用SCOPE_IDENTITY()取出这个值,然后把他格式化成你要的编号
如果是oracle中可以用序列来解决这个问题.很容易解决.sql server自增自段应该也没问题