用于查询SQL Server中被锁或是更新的表的存储
来源:互联网 发布:libreoffice源码 编辑:程序博客网 时间:2024/05/22 07:50
USE master GO alter procedure sp_lock2 @spid1 int = NULL, /* server process id to check for locks */ @spid2 int = NULL /* other process id to check for locks */ as set nocount on /* ** Show the locks for both parameters. */ declare @objid int, @indid int, @dbid int, @string Nvarchar(255) CREATE TABLE #locktable ( spid smallint ,loginname nvarchar(20) ,hostname nvarchar(30) ,dbid int ,dbname nvarchar(20) ,ObjOwner nvarchar(128) ,ObjId int ,ObjName nvarchar(128) ,IndId int ,IndName nvarchar(128) ,Type nvarchar(4) ,Resource nvarchar(16) ,Mode nvarchar(8) ,Status nvarchar(5) ) if @spid1 is not NULL begin INSERT #locktable ( spid ,loginname ,hostname ,dbid ,dbname ,ObjOwner ,ObjId ,ObjName ,IndId ,IndName ,Type ,Resource ,Mode ,Status ) select convert (smallint, l.req_spid) ,coalesce(substring (s.loginame, 1, 20),'') ,coalesce(substring (s.hostname, 1, 30),'') ,l.rsc_dbid ,substring (db_name(l.rsc_dbid), 1, 20) ,'' ,l.rsc_objid ,'' ,l.rsc_indid ,'' ,substring (v.name, 1, 4) ,substring (l.rsc_text, 1, 16) ,substring (u.name, 1, 8) ,substring (x.name, 1, 5) from master.dbo.syslockinfo l, master.dbo.spt_values v, master.dbo.spt_values x, master.dbo.spt_values u, master.dbo.sysprocesses s where l.rsc_type = v.number and v.type = 'LR' and l.req_status = x.number and x.type = 'LS' and l.req_mode + 1 = u.number and u.type = 'L' and req_spid in (@spid1, @spid2) and req_spid = s.spid end /* ** No parameters, so show all the locks. */ else begin INSERT #locktable ( spid ,loginname ,hostname ,dbid ,dbname ,ObjOwner ,ObjId ,ObjName ,IndId ,IndName ,Type ,Resource ,Mode ,Status ) select convert (smallint, l.req_spid) ,coalesce(substring (s.loginame, 1, 20),'') ,coalesce(substring (s.hostname, 1, 30),'') ,l.rsc_dbid ,substring (db_name(l.rsc_dbid), 1, 20) ,'' ,l.rsc_objid ,'' ,l.rsc_indid ,'' ,substring (v.name, 1, 4) ,substring (l.rsc_text, 1, 16) ,substring (u.name, 1, 8) ,substring (x.name, 1, 5) from master.dbo.syslockinfo l, master.dbo.spt_values v, master.dbo.spt_values x, master.dbo.spt_values u, master.dbo.sysprocesses s where l.rsc_type = v.number and v.type = 'LR' and l.req_status = x.number and x.type = 'LS' and l.req_mode + 1 = u.number and u.type = 'L' and req_spid = s.spid order by spid END DECLARE lock_cursor CURSOR FOR SELECT dbid, ObjId, IndId FROM #locktable WHERE Type <>'DB' and Type <> 'FIL' OPEN lock_cursor FETCH NEXT FROM lock_cursor INTO @dbid, @objid, @indid WHILE @@FETCH_STATUS = 0 BEGIN SELECT @string = 'USE ' + db_name(@dbid) + char(13) + 'update #locktable set ObjName = name, ObjOwner = USER_NAME(uid)' + ' from sysobjects where id = ' + convert(varchar(32),@objid) + ' and ObjId = ' + convert(varchar(32),@objid) + ' and dbid = ' + convert(varchar(32),@dbid) EXECUTE (@string) SELECT @string = 'USE ' + db_name(@dbid) + char(13) + 'update #locktable set IndName = i.name from sysindexes i ' + ' where i.id = ' + convert(varchar(32),@objid) + ' and i.indid = ' + convert(varchar(32),@indid) + ' and ObjId = ' + convert(varchar(32),@objid) + ' and dbid = ' + convert(varchar(32),@dbid) + ' and #locktable.IndId = ' + convert(varchar(32),@indid) EXECUTE (@string) FETCH NEXT FROM lock_cursor INTO @dbid, @objid, @indid END CLOSE lock_cursor DEALLOCATE lock_cursor SELECT * FROM #locktable return (0) -- END sp_lock2 GO
- 用于查询SQL Server中被锁或是更新的表的存储
- SQL Server 的连接、查询与更新
- 一个用于获取空ID的SQL Server存储过程
- SQL server存储过程:数据的插入和更新
- sql server的JDBC连接,查询,更新,关闭
- SQL SERVER 下 OPENQUERY 的级联查询及更新
- java连接sql server时,错误“已生成用于更新的结果集”
- SQL Server修改表结构后批量更新所有视图的存储过程
- SQL SERVER查询目标表被调用的的存储过程
- SQL Server UPDATE语句用于更新数据
- 关联表的批量更新(SQL SERVER)
- sql server多表的更新
- SQL SERVER数据库导出表或查询到EXCEL文件的存储过程
- sql server 查询所有表的字段的详细信息的存储过程(在 SQL Server 2005 中查询表结构及索引 )
- SQL Server 通配符(用于Like 查询)
- sql server的级联更新
- 数据库表的存储结构-SQL Server
- SQL Server 查询一张表的主键
- Android单线程模型相关概念详解
- 资源文件读取类
- Revision schema repository
- 学习CPU学习
- LINQ to SQL更新数据库操作
- 用于查询SQL Server中被锁或是更新的表的存储
- Ubuntu手动开启无线网 卡
- MySQL不存在则创建数据库数据表
- composite pattern -- 组合模式
- 【百度地图API】如何获取行政区域的边界?
- 使object_pool支持3个以上构造函数参数
- 《PHP求职宝典》--PHP语言基础笔记
- #linux学习#linux下删除文件的空行
- Bag of Features (BoF) 简介