我可以使用SSMS配置事务复制,并且它可以正常工作。但我想使用脚本配置它,以便我从我的c#/ vb应用程序中使用它。
有没有办法做到这一点?
答案 0 :(得分:2)
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\thePackage.dtsx"'
答案 1 :(得分: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/
答案 2 :(得分:2)
在BOL中查看sp_addpublication,sp_addarticle和sp_addsubscription。