Sqlserver各种数据库的锁表和解锁操作

Posted 水狼一族

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlserver各种数据库的锁表和解锁操作相关的知识,希望对你有一定的参考价值。

SqlServer 查询被锁住的表和解锁表

 

--1.查看被锁表 
SELECT request_session_id as spid,OBJECT_NAME(resource_associated_entity_id) as tableName FROM sys.dm_tran_locks WHERE resource_type=OBJECT 
--spid   锁表进程 ;tableName   被锁表名 
--2.解锁 
declare @spid  int  Set @spid  = 被锁表的进程号 declare @sql varchar(1000) set @sql=kill +cast(@spid  as varchar) exec(@sql)

 

Oracle 查询被锁住的表和解锁表

--1.锁表查询的代码有以下的形式: 
SELECT count(*) FROM v$locked_object; SELECT * FROM v$locked_object; 
--2.查看哪个表被锁 
SELECT b.owner,b.object_name,a.session_id,a.locked_mode FROM v$locked_object a,dba_objects b WHERE b.object_id = a.object_id; 
--3.查看是哪个session引起的 
SELECT b.username,b.sid,b.serial#,logon_time FROM v$locked_object a,v$session b WHERE a.session_id = b.sid order by b.logon_time;  
--4.杀掉对应进程 
alter system kill session1025,41; 
--其中1025为sid,41为serial#.

 

以上是关于Sqlserver各种数据库的锁表和解锁操作的主要内容,如果未能解决你的问题,请参考以下文章

查看oracle锁的表名

mysql 锁表查询和解锁操作

sqlserver锁表不能查询吗

Oracle锁表查询和解锁方法

sqlserver表被锁了怎么解决

sqlserver锁表机制