2009-06-05 3 views
1

SQL Agent에서 예약 된 야간 SQL Server 작업이 있습니다.SQL Server 작업에 사용되는 개체

많은 데이터베이스, 저장 프로 시저 및 테이블을 사용합니다.

이 목록을 얻는 최선의 방법은 무엇입니까?

(그것의 SQL 서버 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 명령의 복잡성에 따라 T-SQL 구문 분석기를 쓰지 않고도 개체 이름을 식별 할 수있는 방법이 100 % 보장되지 않을 수 있습니다.

+1

위 쿼리에서 sql 문을 얻은 경우 직접 구문 분석하지 말고 예상 쿼리 계획에서 참조를 구문 분석하는 것이 좋습니다. 이것은 SQL 직접 구문 분석하는 것보다 훨씬 쉽습니다. 당신이 SQL 2005에 있다면 xquery 예제를 줄 수 있습니다. – ahains

관련 문제