类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
在表a中有一个状态值status
当用户在客户端修改这个表时status的值为修改,同时将这个表中的这一行锁定
在用户修改提交后将status值复原,同时解锁
同时在发生错误退出时,要将status的值复原,以及解锁
请问应该怎么实现,提供一点思路
谢谢哈
网友回答:
--参考:
--锁定记录,只允许单用户修改的例子:
--创建测试环境
--创建测试表--部门表
create table 部门(departmentid int,name varchar(10))
--记录锁定表
create table lock(departmentid int,dt datetime)
go
--因为函数中不可以用getdate,所以用个视图,得到当前时间
create view v_getdate as select dt=getdate()
go
--创建自定义函数,判断记录是否锁定
create function f_chk(@departmentid int)
returns bit
as
begin
declare @re bit,@dt datetime
select @dt=dt from v_getdate
if exists(select 1 from lock where departmentid=@departmentid
and datediff(minute,dt,@dt)<5) --锁的超时时间为5分钟
set @re=1
else
set @re=0
return(@re)
end
go
--数据处理测试,操作记录3
if dbo.f_chk(3)=1
print 记录被锁定
else
begin
begin tran
insert into lock values(3,getdate())
update 部门 set name=A where departmentid=3
delete from lock where departmentid=3
commit tran
end
--删除测试环境
drop table 部门
drop view v_getdate
drop function f_chk