Как я могу создать сетку заданий SQL для нескольких серверов? - PullRequest
0 голосов
/ 19 сентября 2011

Я пытаюсь найти способ отслеживания заданий SQL на нескольких серверах SQL и добавления сведений в веб-форму.Я сделал это с помощью пулов приложений, служб и задач, но теперь мне нужно также отслеживать задания.У меня есть сетка, которую я создал для хранения таких вещей, как имя задания, время выполнения, дата выполнения, состояние и т. Д.

Я нашел этот вопрос:

Как отслеживать SQL ServerИнформация о работе агента в C #

string sqlJobQuery = "select j.job_id, j.name, j.enabled, jh.run_status," +
" js.last_outcome_message, jh.run_date, jh.step_name, jh.run_time" +
" from sysjobs j left join sysjobhistory jh on (j.job_id = jh.job_id)" +
" left join sysjobservers js on (j.job_id = js.job_id)" +
" where jh.run_date = (select Max(run_date) from sysjobhistory)" +
" and jh.run_time = (select Max(run_time) from sysjobhistory)";

Его запрос выглядит хорошо, но мне нужно присоединиться к еще одной таблице из моей базы данных (dbo.Monitor), которая включает IP-адрес сервера, чтобы я мог отслеживать несколько серверов.Я пытался добавить LEFT JOIN Monitor.dbo.SQLJobs в нескольких местах, но это никогда не работает.Вот запрос, который я выполняю:

@serverIP       nvarchar(20),
@JobID          nvarchar(100)

SELECT Monitor.dbo.SQLJobs.ServerIP, msdb.dbo.sysjobs.job_id, msdb.dbo.sysjobs.name, 
msdb.dbo.sysjobhistory.run_date, msdb.dbo.sysjobhistory.run_time, msdb.dbo.sysjobhistory.run_status, msdb.dbo.sysjobhistory.step_name
FROM msdb.dbo.sysjobs LEFT JOIN msdb.dbo.sysjobhistory
ON (msdb.dbo.sysjobs.job_id = msdb.dbo.sysjobhistory.job_id)
WHERE Monitor.dbo.SQLJobs.ServerIP = @serverIP
AND msdb.dbo.sysjobs.job_id = @JobID
AND msdb.dbo.sysjobhistory.run_date = (SELECT MAX(run_date) FROM msdb.dbo.sysjobhistory)
AND msdb.dbo.sysjobhistory.run_time = (SELECT MAX(run_time) FROM msdb.dbo.sysjobhistory)
AND msdb.dbo.sysjobhistory.step_name <> '(Job outcome)'

Где я могу добавить другое JOIN, чтобы этот запрос работал?Пожалуйста, дайте мне знать, если мне нужно добавить дополнительную информацию, прежде чем голосовать за меня.

1 Ответ

0 голосов
/ 02 марта 2012

Извините, ребята, я давно не проверял это.Мой запрос не будет работать, потому что я пытаюсь запросить задания sys на двух серверах в разных доменах.

Мне пришлось связать серверы, чтобы получать данные от заданий sys с обоих серверов и отображать данные в одной форме..

http://msdn.microsoft.com/en-us/library/ff772782.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...