SQLServer 复制中移除和加入公布而不初始化全部项目

时间:2022-12-14 20:07:01
--	若提前“禁止架构更改”。新增的列不会自己主动加入大公布。此时应使用 sp_articlecolumn 加入列
EXEC sp_changepublication @publication = N'publication', @property = N'replicate_ddl', @value = 0



--【移除和加入公布而不初始化全部项目,可是加入的项目须初始化】


--	禁止匿名訪问
Exec sp_changepublication 'publication','allow_anonymous',false 
GO 
--	禁止马上更新
Exec sp_changepublication 'publication','immediate_sync',false 
GO 
--	终止单个项目复制(该表在公布可正常操作,订阅应禁止操作)
Exec sp_dropsubscription @publication = N'publication', @article = N'article', @subscriber = N'subscriber', @destination_db = N'destination_db'
GO
--	从公布中删除项目(界面操作将会又一次初始化所以项目)
Exec sp_droparticle @publication = N'publication', @article = N'article'
GO
--	加入项目到公布中(@schema_option 參考个人要求更改)
Exec sp_addarticle @publication = 'publication', @article = N'article', @source_object = N'article', @source_owner = N'dbo',@schema_option = 0x0000000008037CDF
GO 
--	加入未公布的列(对已公布中的表加入多一列,一般不用)
Exec sp_articlecolumn @publication = 'publication' ,@article = N'article',@column = N'column',@operation = N'add'
GO
--	进行行筛选(用于筛选公布)
Exec sp_articlefilter @publication = N'publication', @article = N'article', @filter_name = N'FLTR_article_1__1', @filter_clause = N'id % 2 = 0'
GO 
--	进行行筛选(用于筛选公布)
Exec sp_articleview @publication = N'publication', @article = N'article', @view_name = N'SYNC_article_1__1', @filter_clause = N'id % 2 = 0'
GO 
--	刷新订阅以加入项目
Exec sp_refreshsubscriptions 'publication' 
GO 
--	启动快照代理(初始化新增的项目)
Exec sp_startpublication_snapshot 'publication'
GO