2009-06-05 2 views
1

У меня есть ночное задание SQL Server, запланированное на SQL Agent.Объекты, используемые SQL Server job

Он использует ряд баз данных, хранимых процедур и таблиц.

Что лучше всего получить их?

(Ее SQL Server 2000)

ответ

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 не может быть 100% гарантированного способа идентификации имен объектов без написания (или покупки) анализатора T-SQL.

+1

Если вы получаете инструкции sql из вышеуказанного запроса, я рекомендую вам не анализировать их напрямую, а вместо этого анализировать ссылки из оценочного плана запроса. Это намного проще, чем самостоятельно разобрать sql. Если бы вы были на sql 2005, я мог бы дать вам примеры xquery, о хорошо :( – ahains

Смежные вопросы