SQL SERVER同步环境新增发布对象时不能生成(sp_MS+表名)同步存储过程

时间:2022-12-25 18:47:15

在配置了同步的用户环境(订阅端:请求订阅)

在发布端:

1、企业管理器SSMS—复制—本地发布—发布属性—项目(选中发布对象)

2、在企业管理里—查看快照代理状态(启动)

在订阅服务器:

USE [DBName]
GO
SELECT * FROM sys.procedures WHERE name LIKE 'sp_MS%' ORDER BY create_date DESC

发现没用生成对应的同步所需的存储过程

--解决方法:

--已经配置步骤1时省略

1、重复 步骤1

或用以下命令格式在查询分析器里执行

USE [DBName]
GO
EXEC sp_addarticle @publication = N'DBName', @article = N'TabName',
@source_owner = N'dbo', @source_object = N'TabName',
@schema_option = 0x0000000008037ADF, @force_invalidate_snapshot = 1,
@vertical_partition = N'false' GO

2、执行以下命令

--对于所有现有的订阅服务器,将对其请求订阅中的新项目的订阅添加到发布中。 此存储过程在发布服务器的发布数据库中执行。
Exec sp_refreshsubscriptions 'DBName'
GO
--启动可为发布生成初始快照的快照代理作业
Exec sp_startpublication_snapshot 'DBName'
GO

在订阅服务器:

USE [DBName]
GO
SELECT * FROM sys.procedures WHERE name LIKE 'sp_MS%' ORDER BY create_date DESC

你会发现已存在所需存储过程

新增记录查看是否正常同步

做同步时注意,配置完,检查同步对象是否一致,不一致时建议在发布服务器,数据库—右健—生成脚本 —选中表—选项时(选择只数据生成脚本)