以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [分享]存储过程版-网络环境下的复杂编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61811) |
-- 作者:jspta -- 发布时间:2014/12/19 16:08:00 -- [分享]存储过程版-网络环境下的复杂编号 根据帮助《网络环境下的复杂编号》这章修改 很多人要求再添加的时候获取临时编号,保存的时候再更新正式编号。我觉得纯属浪费时间,我设计都是在正式保存后才生成编号。 理由:既然最终要替换或者可能会被撤销新增行,试问谁会去用到一个不可能存在的编号?既然如此,何必生成那?这样就节约了很多代码和判断了至于断号问题,如果你要求非常高的话,在程序运行出错的情况下,还是会出现的,你需要全程使用存储过程并锁定该编号行。 当然还是有其它办法进行补救的,比如你插入已知的断号编号即可解决。编号只是个编号,只有当需要被使用的时候才需要存在(比如关联,查询等),否则的话,可以不需要编号,_Identify已经足够了。 如果需要当关联使用,千万不要使用_Identify作为关联列,当哪一天你要迁移数据或者备份表格的时候,你会发现,那是个噩梦。如果需要日期型编号的,要用到convert函数,按照具体要求自己修改吧。权当抛砖引玉。 [此贴子已经被作者于2014-12-19 16:09:47编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2014/12/19 16:11:00 -- 楼主是好人,谢谢。 |
-- 作者:有点甜 -- 发布时间:2014/12/19 16:11:00 -- 好 |
-- 作者:逛逛 -- 发布时间:2014/12/19 16:11:00 -- 俺想瞧瞧 |
-- 作者:Bin -- 发布时间:2014/12/19 16:12:00 -- 谢谢分享. |
-- 作者:程兴刚 -- 发布时间:2014/12/19 16:39:00 -- 收藏! |
-- 作者:jnletao -- 发布时间:2014/12/19 16:41:00 -- |
-- 作者:jnletao -- 发布时间:2014/12/19 16:50:00 -- jspta老师,你这个没有补号功能,能否能看下 这个 [分享][求助]采用存储过程完成复杂编号问题! http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=61788&page=2 还没有找到好的方法解决重号 [此贴子已经被作者于2014-12-19 16:50:14编辑过]
|
-- 作者:飞飞 -- 发布时间:2014/12/19 16:52:00 -- 订单 |
-- 作者:jspta -- 发布时间:2014/12/19 17:07:00 -- 以下是引用jnletao在2014-12-19 16:50:00的发言:
jspta老师,你这个没有补号功能,能否能看下 这个 [分享][求助]采用存储过程完成复杂编号问题! http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=61788&page=2 还没有找到好的方法解决重号 这个方法获取的ID,不会重号的,除非极大量的并发可能会出现。 我在开头写了,你保存的时候再获取ID,断号的几率就基本上不会有了,除了程序出错。如果需要删除行,你这个时候可以把编号提取保存,然后再使用。或者仅仅是标记删除即可,也不会出现断号问题。 因为我没有补号的需求,所以这个功能没有用过,如果是单一的序列编号(类似我写的),比较好实现断号的查找,复杂点的就麻烦了。
[此贴子已经被作者于2014-12-19 16:50:14编辑过]
|