当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 如何将数据库中被锁表解锁

MSSQL
在SQL Server下数据库链接的使用
SQL Server数据库中处理空值时常见问题
巧用一条SQL语句实现其它进制到十进制转换
通过JDBC连接DB2数据库技巧
深入浅出SQL教程之嵌套SELECT语句
SQL Server备份文件中导入现存数据库
SQL多表格查询合并至单一声明的常用方式
也谈如何缩小SQL SERVER日志文件
四个语句帮你提高 SQL Server 的伸缩性
用JavaBean编写SQL Server数据库连接类
sql2k中新增加的Function的sqlbook 的帮助
Mssql处理孤立用户的存储过程
探讨SQL Server中Case 的不同用法
快速清除SQLServer日志的两种方法
解决Sql Server警报的疑难问题
MySQL的数据类型和建库策略
SQL SERVER应用问题解答13例(一)
SQL SERVER应用问题解答13例(二)
多种还原.bak数据库文件方式
SQL语句中的一些特殊参数如何用变量来代替

MSSQL 中的 如何将数据库中被锁表解锁


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 166 ::
收藏到网摘: n/a

 我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:

SELECT   sn.username, m.SID,sn.SERIAL#, m.TYPE,
         DECODE (m.lmode,
                 0, 'None',
                 1, 'Null',
                 2, 'Row Share',
                 3, 'Row Excl.',
                 4, 'Share',
                 5, 'S/Row Excl.',
                 6, 'Exclusive',
                 lmode, LTRIM (TO_CHAR (lmode, '990'))
                ) lmode,
         DECODE (m.request,
                 0, 'None',
                 1, 'Null',
                 2, 'Row Share',
                 3, 'Row Excl.',
                 4, 'Share',
                 5, 'S/Row Excl.',
                 6, 'Exclusive',
                 request, LTRIM (TO_CHAR (m.request, '990'))
                ) request,
         m.id1, m.id2
    FROM v$session sn, v$lock m
   WHERE (sn.SID = m.SID AND m.request != 0)         --存在锁请求,即被阻塞
      OR (    sn.SID = m.SID                         --不存在锁请求,但是锁定的对象被其他会话请求锁定
          AND m.request = 0
          AND lmode != 4
          AND (id1, id2) IN (
                        SELECT s.id1, s.id2
                          FROM v$lock s
                         WHERE request != 0 AND s.id1 = m.id1
                               AND s.id2