我是SQL Server复制的新手,并将一些更改推送到现有的复制环境。它是SQL Server 2005 SP3,具有事务复制功能 我创建了一个新表,向现有表添加了列,并添加了一些SP。我在发布者数据库上做了所有这些。 我创建了一个新快照并重新初始化了订阅。新表和新列被复制到新服务器,数据已成功同步,但只有一次。
之后,复制监视器立即报告错误。在“订阅者历史记录”选项卡上,我收到一条消息“子查询返回的值超过1”。命令试图是......
delete from MSsubscription_articlecolumns
where artid=89 and
agent_id = (
select id from MSsubscription_agents
where update_mode > 0 and
UPPER(publisher) = UPPER('xxxx') and
publisher_db = N'xxxx' and
publication = N'xxxxx'
) end
为什么会有重复的订阅代理?我该如何解决?感谢您的帮助。
答案 0 :(得分:1)
我能够通过手动编辑MSsubscription_agents表中的数据来解决此问题。有2条记录具有相同的发布者,db和发布名称。我没有删除其中一条记录,而是将旧记录中的update_mode更改为0,将其从原始问题中的问题语句中过滤掉。然后,复制过程能够通过该语句并正确运行。感谢。