Скрипт для поиска задания моментального снимка для моего издателя репликации - PullRequest
3 голосов
/ 21 сентября 2011

Есть ли способ с помощью сценария увидеть, как называется задание, которое запустит моментальный снимок для моей репликации?

Это для моей среды разработки. Я перестраиваю свои базы данных автоматически через проект базы данных visual studio. У меня автоматическая настройка репликации, но мне все равно приходится запускать задание моментального снимка вручную утром.

Я бы хотел позвонить:

sp_start_job 'JobThatWillTakeTheSnapShotForMyPublisher'

Проблема в том, что имя задания изменяется после каждого запуска моего автоматического развертывания (в конце имени задания добавляется число).

Если нет способа это выяснить, есть ли способ самостоятельно определить название работы?

Ответы [ 2 ]

3 голосов
/ 18 марта 2014

Моментальный снимок задания можно найти в таблицах репликации syspublications для репликации транзакций и sysmergepublications для репликации слиянием, например:

declare @jobId uniqueidentifier

use <MyPublicationDB>
set @jobId = (
    select snapshot_jobid from syspublications 
    where name = '<MyPublication>')

select @jobId
2 голосов
/ 21 сентября 2011

Вот что я придумал:

declare @jobId uniqueidentifier
declare @jobName sysname

select  @jobId = jobs.job_id, @jobName = jobs.name
from    msdb.dbo.sysjobs jobs (nolock)
        join msdb.dbo.syscategories categories (nolock)
          on jobs.category_id = categories.category_id
where   categories.name = 'REPL-Snapshot'
        and jobs.name like '%MyPublisherNameHere%'

select @jobId, @jobName   

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