4

我能够使用 SSMS 配置事务复制并且它工作正常。但我想使用脚本对其进行配置,以便从我的 c#/vb 应用程序中使用它。

有没有办法做到这一点?

4

3 回答 3

2
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\thePackage.dtsx"'
于 2012-11-12T14:16:42.887 回答
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

查看 BOL 中的 sp_addpublication、sp_addarticle 和 sp_addsubscription。

于 2012-11-13T02:07:08.007 回答