LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

弃用数据库自增ID的解决方法

admin
2011年3月12日 23:2 本文热度 2921
解决思路

1).定义一张表,专门用来存放存所有需要唯一ID的表名称以及该表当前所使用到的ID值。
2).写一个存储过程,专门用来在上一步的表中取ID值。

这个思路非常简单,我不作解释了,直接来看看我的实现方法:

第一步:创建表



 程序代码

create table table_key
(
       table_name   varchar(50) not null primary key,
       key_value    int         not null
)

第二步:创建存储过程来取自增ID



 程序代码

create procedure up_get_table_key
(
   @table_name     varchar(50),
   @key_value      int output
)
as
begin
     begin tran
         declare @key  int
        
         --initialize the key with 1
         set @key=1
         --whether the specified table is exist
         if not exists(select table_name from table_key where table_name=@table_name)
            begin
              insert into table_key values(@table_name,@key)        --default key vlaue:1
            end
         -- step increase
         else    
            begin
                select @key=key_value from table_key with (updlock) where table_name=@table_name
                set @key=@key+1
                --update the key value by table name
                update table_key set key_value=@key where table_name=@table_name
            end
        --set ouput value
    set @key_value=@key

    --commit tran
    commit tran
        if @@error>0
      rollback tran
end

作者原文

1).弃用数据库自增ID,曝光一下我自己用到的解决方法
http://www.cnblogs.com/repository/archive/2011/01/17/1937265.html
2).弃用数据库自增ID,曝光一下我自己用到的解决方法之---终结篇
http://www.cnblogs.com/repository/archive/2011/01/20/1939450.html

该文章在 2011/3/12 23:02:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved