Vous pouvez obtenir le texte de commande de chaque étape de votre travail avec la requête suivante:
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
Vous pouvez ensuite rechercher dans le texte de commande de chaque étape de travail rechercher des noms de base de données, de table et de procédure stockée. Cela est plus simple si vous avez des conventions de dénomination cohérentes pour vos objets (par exemple, les noms de tables commencent t_, les noms de procédures stockées commencent par usp_). N'oubliez pas d'exclure les commentaires dans votre recherche. Une bibliothèque d'expressions régulières simplifie cette tâche, mais sa prise en charge n'est pas incluse dans le langage T-SQL natif. Il y a more than one way pour ajouter regular expression support à SQL 2000, ou vous pouvez utiliser un autre langage/outil pour effectuer les recherches.
Malheureusement, en fonction de la complexité des commandes T-SQL, il ne peut y avoir aucun moyen garanti à 100% d'identifier les noms d'objet sans écrire (ou acheter) un analyseur T-SQL.
Si vous obtenez les instructions sql de la requête ci-dessus, je vous recommande de ne pas les analyser directement, mais d'analyser les références à partir d'un plan de requête estimé. C'est beaucoup plus facile que d'analyser le sql directement vous-même. Si vous étiez sur sql 2005 je pourrais vous donner quelques exemples de xquery, oh bien :( – ahains