获取编号的时候"select isnull(max(cast(cls_num as int)),1000000)+1 as newid from classes"获取最大编号并自动加一。保存时保存该编号
如果另一个用户也获取到这个编号,也保存相同编号就会冲突。
我不想加锁和用事务回滚,这样都造成用户不能保存数据。我想这样:保存时,如果有相同编号,就把这个编号再加一,如果还有相同就再加一,直到保存成功。大家知不知道怎样实现?
如果另一个用户也获取到这个编号,也保存相同编号就会冲突。
我不想加锁和用事务回滚,这样都造成用户不能保存数据。我想这样:保存时,如果有相同编号,就把这个编号再加一,如果还有相同就再加一,直到保存成功。大家知不知道怎样实现?
然后对这条记录进行行锁就可以避免出现重复的问题了如果流水号不包含特殊的意义,就使用自增量字段好了,用bigint,保证不会超出最大值。用int型做关键字,查询、插入速度也快。