4

SSMS を使用してトランザクション レプリケーションを構成でき、正常に動作します。しかし、c#/vb アプリケーションから使用できるように、スクリプトを使用して構成したいと考えています。

それを行う方法はありますか?

4

3 に答える 3

2

BOLのsp_addpublication、sp_addarticle、およびsp_addsubscriptionを確認してください。

于 2012-11-13T02:07:08.007 に答える
2

SSMS を使用してトランザクション レプリケーションのすべての手順を完了した場合、スクリプトの操作は複雑ではありません。

ディストリビューション、パブリケーション、およびサブスクリプションを構成するときに、SSMS がすべてのステップでスクリプトを生成するオプションを提供することを注意深く観察してください。

生成されたスクリプトを使用できます。

ただし、唯一の違いは、記事を出版物に追加するときです。次のコードを使用して記事を追加できます

declare @name nvarchar(50)
declare curname cursor for
select name from sysobjects where type = 'U'
open curname
fetch next from curname into @name
while @@FETCH_STATUS = 0
begin
if exists(select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = @name AND TABLE_SCHEMA = 'dbo')
begin
exec sp_addarticle
@publication = N'publication_name', @article = @name, @source_owner = N'dbo',
@source_object = @name, @type = N'logbased', @description = null, @creation_script = null,
@pre_creation_cmd = N'drop', @schema_option = 0x000000000803509F,
@identityrangemanagementoption = N'manual', @destination_table = @name,
@destination_owner = N'dbo', @vertical_partition = N''
end
fetch next from curname into @name
end
close curname
deallocate curname

または、https://hasibarnab.wordpress.com/category/sql-server/replication/をご覧ください。

于 2012-11-12T15:13:11.047 に答える
2
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\thePackage.dtsx"'
于 2012-11-12T14:16:42.887 に答える