我正在使用 sql server 2012 及其复制功能。我在这里尝试手动创建出版物并使用脚本向其中添加文章。我能够成功创建该出版物,但在向其中添加文章时遇到问题。
这是我添加文章的脚本
EXEC ScriptDB.dbo.sp_addarticle
@publication = 'PublicationOne',
@article = 'Departments',
@source_object = 'Departments',
@source_owner = 'dbo',
@type = N'logbased',
@schema_option = 0x000000000803509F,
@identityrangemanagementoption = N'manual',
@pre_creation_cmd = N'none'
最重要的是,Departments 表在 PublisherDB 数据库中,我正在从 ScriptDB 数据库运行这个脚本。由于我将拥有许多发布者,因此我将动态传递这些值。
当我执行上述脚本时,出现以下错误
Msg 14027, Level 11, State 1, Procedure sp_MSrepl_addarticle, Line 590 [dbo].[Departments] does not exist in the current database.
Departments 表在 ScriptDB 中不存在,但在 PublisherDB 数据库中。所以我将脚本更改为
EXEC PublisherDB.dbo.sp_addarticle
@publication = 'PublicationOne',
@article = 'Departments',
@source_object = 'Departments',
@source_owner = 'dbo',
@type = N'logbased',
@schema_option = 0x000000000803509F,
@identityrangemanagementoption = N'manual',
@pre_creation_cmd = N'none'
现在它说,
Msg 20026, Level 11, State 1, Procedure sp_MSreinit_article, Line 40 The publication 'PublicationOne' does not exist.
告诉我一些事情,我不能在另一个数据库上运行脚本来创建出版物。
例如,考虑这种情况,我有一个主数据库和两个发布者数据库。我想创建两个单独的出版物(每个发布者数据库一个)。现在我可以在主数据库中执行上述脚本来创建发布者(使用两个发布者数据库)。这是否可以实现。
请帮忙。