它是每次用户申请帐号的时候,随机生成一个不存在的号码呢?还是最大值 + 1?
不使用自动编号有哪些好处?如何保证多人同时更新的时候不会因为最大值 + 1已经存在而插入失败?
有什么方法可以快速返回一个 1 至 最大值 之间不存在的号?
如果插入记录时因为ID已经存在,会返回什么错误号?可否从新分配一个ID值反复插入,直至成功?有什么简单而有完美的方法?
不使用自动编号有哪些好处?如何保证多人同时更新的时候不会因为最大值 + 1已经存在而插入失败?
有什么方法可以快速返回一个 1 至 最大值 之间不存在的号?
如果插入记录时因为ID已经存在,会返回什么错误号?可否从新分配一个ID值反复插入,直至成功?有什么简单而有完美的方法?
解决方案 »
- 急求SQL语句
- SQL Server数据库成为紧急模式怎么恢复
- 请问一下有没有方法查找数据库中已知列名的列所以的数据库表或是视图呢?
- 100分求教关于SQL Server 2005 Reporting Services 的问题
- 簡單的視圖連接問題 !
- 如何按"天"、"周"、"月"、"年"等时间单位分组 (GROUP BY) DateTime 类型字段?!
- 怎样用SQL语句一次将它显示出来?
- 同一业务号的每一张发票是由哪张(单张或多张)收款单支付的?金额是多少?谁能救救我!给50分
- 用InstallShield制作前Delphi后Sybase的安装文件的BDE问题
- 关于基于sql server日志的问题
- 存储过程解答???
- 高分求解一个sql问题,高手帮忙啊!急…… 在线等
---
它有规则 的不使用自动编号有哪些好处?如何保证多人同时更新的时候不会因为最大值 + 1已经存在而插入失败?
--
自编号系统自己生成,保证不重复
有什么方法可以快速返回一个 1 至 最大值 之间不存在的号?
---
declare @t table(id int)
insert into @t select 1
insert into @t select 2
insert into @t select 4
insert into @t select 6
insert into @t select 7
select min(id+1) from @t a where not exists(select 1 from @t where id=a.id+1)如果插入记录时因为ID已经存在,会返回什么错误号?可否从新分配一个ID值反复插入,直至成功?有什么简单而有完美的方法?--
失败,直接报错返回
----
貌似,自动编号最完美要把重号概率缩小到最小?
也许使用:种类号+服务器时间(yyyymmddhhnnss)+.....
和身份证的编码规则类似的方法