日期:2014-05-17  浏览次数:20464 次

sqlserver2005中存储过程如何加锁?
存储过程中有一段开启和关闭sqlserver某个服务的代码,如何加上锁,在别人有执行这段代码时不关闭,没有别人用的时候就关闭,sql有没有办法实现呢?

create proc sss
as
begin

--开启服务

--执行的代码,当前执行完毕,如果发现这段代码别人正在用,那么后面的关闭服务代码就不执行

--关闭服务

end

------解决方案--------------------
建立一张表,开启服务后插入一条数据,执行结束后删除该条数据
关闭服务前查看该表的count是否为0,为0说明无服务占用,关闭,大于0说明有人使用,不关闭。
------解决方案--------------------
用sql server的applock,
参考 http://technet.microsoft.com/zh-cn/ms189749(v=sql.90)