欢迎光临

木子屋

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

作者: dnawo

日期: 2011-01-26 02:54 PM

分类: 服务器

内容: 解决思路
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

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.016 ms

返回

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

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.016 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 2.074 ms

返回