下面是我的存储过程,为什么多人操作的时候会发生死锁呢,急呀!

zyunlin 2002-11-09 10:05:07
此存储过程是取最大号用的!
CREATE procedure uf_getnextvalues
@al_argument numeric(3)
as
Declare
@ll_count numeric(8),
@ls_return varchar(16),
@ll_temp numeric(8)



select @ll_count = count(*)
from t_sequence
where id = @al_argument and convert(char(8),rq,112) = convert(char(8),getdate(),112)

if @ll_count < 1
begin
begin transaction
delete from t_sequence where id = @al_argument
insert into t_sequence(id,rq,cu_values)
values
(@al_argument,getdate(),1)
commit transaction
end

select @ll_temp = cu_values
from t_sequence
where id = @al_argument and convert(char(8),rq,112) = convert(char(8),getdate(),112)

select @ls_return = convert(char(8),getdate(),112)+replace(str(@al_argument,3)+str(cu_values,5),' ','0')
from t_sequence
where id = @al_argument and convert(char(8),rq,112) = convert(char(8),getdate(),112)

if @ll_temp >= 99999
begin
select @ll_temp = 1
end
else
begin
select @ll_temp = @ll_temp + 1
end

begin transaction
update t_sequence set cu_values = @ll_temp
where id = @al_argument and convert(char(8),rq,112) = convert(char(8),getdate(),112)

commit transaction

SELECT @ls_return

return (0)


GO
...全文
34 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandorn 2002-11-09
  • 打赏
  • 举报
回复
up

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧