A good sp form MSDN (SP_LOCK2)

leimin 2003-03-10 02:22:41
加精
USE MASTER
GO
create 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,
@dbid int,
@string Nvarchar(255)

CREATE TABLE #locktable
(
spid smallint
,loginname nvarchar(20)
,hostname nvarchar(30)
,dbid int
,dbname nvarchar(20)
,objId int
,ObjName nvarchar(128)
,IndId int
,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
,objId
,ObjName
,IndId
,Type
,Resource
,Mode
,Status
)
select convert (smallint, l.req_spid)
--,coalesce(substring (user_name(req_spid), 1, 20),'')
,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
,objId
,ObjName
,IndId
,Type
,Resource
,Mode
,Status
)
select convert (smallint, l.req_spid)
--,coalesce(substring (user_name(req_spid), 1, 20),'')
,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 FROM #locktable WHERE Type ='TAB'

OPEN lock_cursor
FETCH NEXT FROM lock_cursor INTO @dbid, @ObjId
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @string =
'USE ' + db_name(@dbid) + char(13)
+ 'UPDATE #locktable SET ObjName = object_name('
+ convert(varchar(32),@objId) + ') WHERE dbid = ' + convert(varchar(32),@dbId)
+ ' AND objid = ' + convert(varchar(32),@objId)

EXECUTE (@string)
FETCH NEXT FROM lock_cursor INTO @dbid, @ObjId
END
CLOSE lock_cursor
DEALLOCATE lock_cursor


SELECT * FROM #locktable
return (0)
-- END sp_lock2
GO
...全文
148 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
seth99 2003-03-10
  • 打赏
  • 举报
回复
好冬冬
DJMPH 2003-03-10
  • 打赏
  • 举报
回复
不错。
leimin 2003-03-10
  • 打赏
  • 举报
回复
I find a good sp_lock2 from MSDN,
additional feature:
1.User names for the listed system process IDs (SPIDs).
2.Database names for the listed databases.
3.Table names for the listed database objects.


内容概要:本文提供了电力系统潮流计算与风能、光伏、水电等多类型分布式电源接入IEEE33节点配电网系统的Matlab代码实现方案,系统涵盖了含分布式电源(DG)的潮流建模、多能源出力特性模拟、无功优化、分布式电源选址定容、储能配置及经济调度等关键技术环节。通过构建标准化IEEE33节点测试系统,实现了高比例可再生能源接入下的潮流分析与优化调度仿真,并结合遗传算法、粒子群优化等智能优化算法,解决配电网中的电压越限、网损增加、功率波动等问题,提升系统的运行稳定性、经济性与清洁能源消纳能力。文中还包含多场景仿真分析与数据可视化,为综合能源系统与智能配电网研究提供完整的算法支持与技术路径。; 适合人群:具备电力系统分析基础和Matlab编程能力的高校研究生、科研人员,以及从事新能源并网、配电网规划与优化、智能电网运行等相关工作的工程技术人员。; 使用场景及目标:①用于教学与科研中对含高渗透率可再生能源的配电网潮流特性进行仿真分析与验证;②支撑毕业设计、科研课题或工程项目中对分布式电源接入影响的评估与优化策略开发;③为无功优化、可靠性提升、低碳调度等实际工程问题提供算法验证与仿真平台。; 阅读建议:建议读者结合IEEE33标准节点系统拓扑图进行代码调试与参数设置,重点关注潮流计算模块与优化算法的接口逻辑设计,同时可借助YALMIP、CPLEX等优化工具包增强建模能力,并通过调整电源接入位置、负荷水平与天气场景,拓展至不同运行工况与更大规模系统的仿真研究。

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧