是否有办法通过脚本查看作业名称将为我的复制启动快照?
这适用于我的开发环境。我正在通过visual studio数据库项目自动重建我的数据库。我的复制设置已自动完成,但我仍需要在早上手动启动快照作业。
我希望能够致电:
sp_start_job 'JobThatWillTakeTheSnapShotForMyPublisher'
问题是每次运行自动部署后,作业名称都会更改(它会在作业名称的末尾添加一个数字。)
如果没有办法找到这个,有没有办法确定自己设置工作的名称?
答案 0 :(得分:3)
您可以在复制表syspublications中找到用于事务复制的快照jobid和用于合并复制的sysmergepublications,例如:
declare @jobId uniqueidentifier
use <MyPublicationDB>
set @jobId = (
select snapshot_jobid from syspublications
where name = '<MyPublication>')
select @jobId
答案 1 :(得分:2)
这就是我提出的:
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