sqlserver进程死锁关闭的方法


1.首先我们需要判断是哪个用户锁住了哪张表.

--查询被锁表

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName 
from sys.dm_tran_locks 
where resource_type='OBJECT' 

查询后会返回一个包含spid和tableName列的表. 其中spid是进程名,tableName是表名.

2.了解到了究竟是哪个进程锁了哪张表后,需要通过进程找到锁表的主机.

--查询主机名

exec sp_who2 'xxx' 

xxx就是spid列的进程,检索后会列出很多信息,其中就包含主机名.

3.通过spid列的值进行关闭进程.

--关闭进程 declare @spid int Set @spid = xxx 
--锁表进程 declare @sql varchar(1000) set @sql='kill '+cast(@spid as varchar) exec(@sql) 

PS:有些时候强行杀掉进程是比较危险的,所以最好可以找到执行进程的主机,在该机器上关闭进程.

相关阅读 >>

mysql数据库索引orderby排序精讲

sqlserver 模糊查询常用方法

php中常见的sql攻击正则表达式汇总

sql server 开窗函数 over()代替游标的使用详解

sql server各版本有什么区别

asp.net 数据库备份还原(sqlserver+access)

sql插入记录的命令是什么

52条sql语句教你性能优化

sql中的三种去重方法小结

创建索引的sql语句是什么

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...