获取唯一编号的存储过程如何写?

[复制链接]
查看11 | 回复9 | 2006-6-24 09:06:28 | 显示全部楼层 |阅读模式
有一个表 ATable,
ATable中有一个ID字段,
ID 字段是从 1000开始连续的编号,
如何用存储过程取得ID字段的唯一编号.
因为有记录被删除, 就存在空的编号
如果ID都是连续的, 都取MAX(ID) + 1就行了,
但如果中间有被删除了的记录,
就要取最小的空ID,
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
定义游标后用一个while 循环和一个记数变量记录ID
定义游标时排序
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
能不能帮忙写个存储过程啊?
我对存储过程还不熟
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
在MS SQL Server 2000里
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
这是个效率极低的做法,建议你还是直接采用Identity字段。
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
最初由 zhou163 发布
[B]定义游标后用一个while 循环和一个记数变量记录ID
定义游标时排序 [/B]

完全同意这位楼主的方法
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
楼住的要求只能够通过procedure 实现,identity 不能保证一直连续
如果 你的那个数据表步大于100000,我还可以考虑 给你一个比较简单的方法


回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
最初由 myrabit 发布
[B]
完全同意这位楼主的方法 [/B]

不要用这个游标的方法
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
最初由 花好月不圆 发布
[B]楼住的要求只能够通过procedure 实现,identity 不能保证一直连续
如果 你的那个数据表步大于100000,我还可以考虑 给你一个比较简单的方法

[/B]

请教这位老兄该如何做?
回复

使用道具 举报

千问 | 2006-6-24 09:06:28 | 显示全部楼层
好的方法不妨讲一下啊,楼上的那位兄弟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行