SQL Server作业使用的对象

时间:2009-06-05 08:48:23

标签: sql-server

我在SQL Agent上安排了一个夜间SQL Server作业。

它使用了许多数据库,存储过程和表。

获取这些列表的最佳方法是什么?

(其SQL Server 2000)

1 个答案:

答案 0 :(得分:2)

您可以使用以下查询获取作业每个步骤的命令文本:

SELECT  sj.name         AS job_name
        ,sjs.step_id
        ,sjs.step_name
        ,sjs.command 
FROM msdb.dbo.sysjobs           AS sj
JOIN msdb.dbo.sysjobsteps       AS sjs
ON   sj.job_id = sjs.job_id
WHERE sj.name = '~your job name~'
AND   sjs.subsystem = 'TSQL'
ORDER BY sj.name
        ,sjs.step_id

然后,您可以搜索每个作业步骤的命令文本以查找数据库,表和存储过程名称。如果您的对象具有一致的命名约定(例如,表名开始t_,存储过程名称启动usp_),这会更简单。请务必在搜索中排除评论。

正则表达式库使此任务更容易,但对它们的支持不包含在本机T-SQL中。有more than one way可以将regular expression support添加到SQL 2000,或者您可以使用其他语言/工具来执行搜索。

不幸的是,根据T-SQL命令的复杂性,在没有编写(或购买)T-SQL解析器的情况下,可能没有100%保证识别对象名称的方法。