原理非常简单,首先是获取所有SQL进程,方法有多种:
1、sys.sysprocesses:在SQL Server 2000就声明要被移除了,不建议使用。实际上sys.sysprocesses是用以下的dmv来映射的。
2、sp-who
3、sp-who2:跟sp-who类似,获取的字段比sys.sysprocesses和以下的dmv要少。
4、sys.dm-exec-sessions等相关dmv:
select * from sys.dm-exec-connections
select * from sys.dm-exec-requests
select * from sys.dm-exec-sessions
然后dbcc INPUTBUFFER(spid)来获取指定进程执行的SQL,最后用kill spid来中止SQL进程。