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.
パブリケーションを作成するために別のデータベースでスクリプトを実行できませんか。
たとえば、マスター データベースと 2 つのパブリッシャー データベースがある場合を考えてみましょう。2 つの個別のパブリケーション (パブリッシャー データベースごとに 1 つ) を作成したいと考えています。master データベースで上記のスクリプトを実行して、発行者を作成できます (2 つの発行者データベースを使用)。これを実装することは可能ですか。
助けてください。