SQL自動解鎖

原创 2007年10月06日 10:09:00

* 在数据库系统中,作为任务,每1分钟运行一次。
*
* 取消进程的条件:
* 1、锁住了其他进程。
* 2、自身没有被其他进程锁住。
* 3、此进程已经空闲了2分钟以上。

DECLARE
@USER_ID INT
, @KILLCMD VARCHAR(100)
, @WAIT_TIME INT
-- 设置空闲时间
SET @WAIT_TIME = 2;
-- 根据选择条件,选择出应该取消的进程
DECLARE cur_lock CURSOR FOR
SELECT spid
FROM master..sysprocesses
WHERE
DATEDIFF(minute, last_batch, getdate()) > @WAIT_TIME
AND blocked = 0
AND spid IN
(SELECT blocked
FROM master..sysprocesses);
-- 取消所有选择出的进程。
OPEN cur_lock;
FETCH NEXT FROM cur_lock INTO @USER_ID;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @KILLCMD = 'kill ' + CAST(@USER_ID AS VARCHAR);
EXECUTE (@KILLCMD);
FETCH NEXT FROM cur_lock INTO @USER_ID;
END;
CLOSE cur_lock;
DEALLOCATE cur_lock; 

自动格式化SQL工具推荐

懒汉版 基于网页的自动格式化SQL:http://www.dpriver.com/pp/sqlformat.htm 优点:方便 缺点:有些SQL解析失败(如Hive的QL)会导致整个格式化失败 ...

创建SQL2005自动备份

  • 2016年02月16日 12:05
  • 242KB
  • 下载

sql自动备份

  • 2013年12月08日 17:48
  • 1.03MB
  • 下载

SQL自动备份 备份到本地或者远程服务器

0.1 在SQLServer2008 --> 备份数据库 --> 安全 --> 新建用户 --> 用户名                                        选择该wind...

SQL自动分页

  • 2013年10月06日 14:15
  • 1.5MB
  • 下载

SQL 查询结果自动递增序列号

一、让SELECT查询结果额外增加自递的伪序号列 在基于数据库的系统的开发过程中,有时需要让select返回的查询结果中存在一列实际的数据库表中并不存在的序号列,即在查询结果中额外增加自增的伪序号列...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL自動解鎖
举报原因:
原因补充:

(最多只允许输入30个字)