SQL Server中,如何控制一次只能允许一个用户访问某个存储过程? 如文章标题,请教大家是如何是实现的,提前说声谢谢~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想在数据库中实现,问题的关键是,如何确定该存储过程是否正在被某个session调用,特别是两个或多个用户几乎在同一时刻访问该存储过程时,如何控制只限一位用户访问? 用一个特殊临时表实现create proc pro_testasif object_id('tempdb..abc123456ce')is not null return--执行你的操作--连接操作中使用create table tempdb..abc123456ce(ID int)exec pro_testdrop table tempdb..abc123456ce 把is not null 改成is null试下 使用应用程序锁。《Microsoft SQL Server 2005技术内幕:存储引擎》第八章,自己研究吧:......举例来说,假设用户有一个存储过程且每次只有一个用户执行。属于ProcUserRole 数据库角色的任何用户都可以通过sp_getapplock 存储过程来获取一个特殊锁(告诉其他进程:已经有人在使用该存储过程了)以锁定这个存储过程。当存储过程执行完毕以后,可以使用sp_releaseapplock 来释放这个锁:EXEC sp_getapplock 'ProcLock', 'Exclusive', 'session', 'ProcUserRole'EXEC MySpecialProc <parameter list>EXEC sp_releaseapplock 'ProcLock', 'session'...... 对应用程序设置锁:sp_getapplock具体例子自己网上找或者msdn注意:如果其他事物执行时也当创建获取相同的应用程序锁. 帅哥哥,进来撒。 sql 疯了,有没有一句简单的话搞定 sql语句,基础问题 菜鸟提问,大虾请看:一个简单查询。 分页存储过程 排除重复行 怎样提高SQL SERVER运行速度? 求助关于收支 全完了,SQL Server数据库被标为suspect标志,不能恢复,各位请帮忙。 请问用java如何读取sqlserver日志文件? MSSQL查询数据库中当天生日的用户 我的CONTAINSTABLE语句搜索英文内容,有数据,没有结果
我想在数据库中实现,问题的关键是,如何确定该存储过程是否正在被某个session调用,特别是两个或多个用户几乎在同一时刻访问该存储过程时,如何控制只限一位用户访问?
create proc pro_test
as
if object_id('tempdb..abc123456ce')is not null return
--执行你的操作--连接操作中使用
create table tempdb..abc123456ce(ID int)
exec pro_test
drop table tempdb..abc123456ce
is not null
改成
is null
试下
......
举例来说,假设用户有一个存储过程且每次只有一个用户执行。属于ProcUserRole 数据库角色的任何用户都可以通过sp_getapplock 存储过程来获取一个特殊锁(告诉其他进程:已经有人在使用该存储过程了)以锁定这个存储过程。当存储过程执行完毕以后,可以使用sp_releaseapplock 来释放这个锁:EXEC sp_getapplock 'ProcLock', 'Exclusive', 'session', 'ProcUserRole'EXEC MySpecialProc <parameter list>EXEC sp_releaseapplock 'ProcLock', 'session'
......
具体例子自己网上找或者msdn注意:如果其他事物执行时也当创建获取相同的应用程序锁.