如文章标题,请教大家是如何是实现的,提前说声谢谢~
解决方案 »
- 再啰里八嗦问两个问题
- 写了个存储过程。500万条记录,每页10条,取第一页时不到1s,最后一页时,10s之内
- 求一SQL SERVER 2000 的安装包的下载连接~~~~
- 删除记录的问题,用了这么长sql,头一次遇到。
- 一条更新语句!
- SQL server 里得到分钟的单词是什么?
- 再问一个关于邹老大的算法,想得头大了!!!!
- 如何在已有主键的表中再添加一个字段做主键
- 高分求救!sql server 多人使用license问题
- 求救:nvarchar(或varchar)字段的值中含有n个换行,如何在取一批记录时将换行去掉并返回?真的急!急急!急急!急
- 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注意:如果其他事物执行时也当创建获取相同的应用程序锁.