sql-server - 为我的复制发布者查找快照作业的脚本

标签 sql-server tsql sql-server-2008 replication sql-server-2008-r2

有没有办法通过脚本查看为我的复制触发快照的作业名称?

这是我的开发环境。我正在通过 visual studio 数据库项目自动重建我的数据库。我的复制设置是自动化的,但我仍然必须在早上手动启动快照作业。

我希望能够调用:

sp_start_job 'JobThatWillTakeTheSnapShotForMyPublisher'

问题是每次我运行自动部署后作业的名称都会改变(它会在作业名称的末尾添加一个数字。)

如果没有办法找到这个,有没有办法自己确定性地设置作业名称?

最佳答案

您可以在事务复制的复制表syspublications 和合并复制的sysmergepublications 中找到快照jobid,例如:

declare @jobId uniqueidentifier

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

select @jobId

关于sql-server - 为我的复制发布者查找快照作业的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7502078/

相关文章:

c# - 使用 C# Windows 窗体应用程序将数据从 Excel (.CSV) 文件上传到 SQL

如果分组值在源中没有行,SQL Server 如何返回 NULL 而不是 0

sql-server - 获得对 xp_cmdshell 的执行权限

c# - 当数据库中有数据时查询不返回任何内容

sql - 获取某位列所有行的 "OR"结果

sql-server - "Null"值在 SQL Server 中占用多少大小

c# - 如果我不从 asp.net 中的图像上传控件中选择图像,我想在数据库中插入 null

sql - 参数化 SQL IN 子句

java - Hibernate saveOrUpdate 创建一个对象的两个实例

sql - 在 SQL Server 中将 NULL 转换为空字符串