查找sql server 2000中的所有存储过程和作业
在 SQL SERVER 2005 中此查询工作正常:Select * from sys.procedures where object_definition(object_id) like '%J%' SELECT * FROM MSDB.DBO.SYSJOBS WHERE NAME LIKE '%J%'
但在 sql server 2000 中它不起作用。在这里我需要找到与我的字符串匹配的所有存储过程和作业?如何在sql server 2000中查找?
问候, 库马尔
In SQL SERVER 2005 This query works fine : Select * from sys.procedures where object_definition(object_id) like '%J%'
SELECT * FROM MSDB.DBO.SYSJOBS WHERE NAME LIKE '%J%'
but in sql server 2000 it is not working. Here i need to find the all the stored procedures and jobs which matches my string ? how to find in sql server 2000 ?
regards,
kumar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SQL 2000 缺少
sys.procedures
系统表 - 您会发现最接近的是sysobjects
,您可以选择WHERE name=? AND XTYPE='P'
。要获取 SQL 代理作业,您可以执行以下操作:
SQL 2000 lacks the
sys.procedures
system table - the closest you'll find issysobjects
, and you could do your selectWHERE name=? AND XTYPE='P'
.To get SQL agent jobs, you can do this:
syscomments 包含过程定义的文本(在其 text 和 ctext 列中)。
但是,您应该意识到大型过程可以跨越多行,因此如果您在 LIKE 条件中搜索的内容很大,您可能会不幸,它会跨行边界分割。由于 SQL Server 2000 没有 varchar(max),因此没有简单的解决方法。
syscomments contains the text of procedure definitions (in both it's text and ctext columns).
However, you should be aware that large procedures can span multiple rows, so if what you're searching for in your LIKE condition is large, you may be unlucky and it will be split across a row boundary. There's no easy fix for this, since SQL Server 2000 doesn't have varchar(max).