首先,不知道你有没有类似的经历,在可更新订阅的事务复制,当初始化订阅时,发生了类似这样的错误:列名 'msrepl_tran_version' 无效 。(源: MSSQLSERVER,错误号: 207 )
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/2205847c-586c-43b8-bf61-147c4db04965.jpg)
图1.通过复制监视器来检查错误
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/9074d5bd-2094-478f-b6ac-165c5ea9c467.jpg)
图2.通过作业的历史记录来检查错误
问题分析:
我们知道,在允许可更新订阅的发布中发布表时,会将列 msrepl_tran_version 添加到表中。本文章中,在发布表Product是把列msrepl_tran_version添加到表中。
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/d0c7cf27-7513-4b72-aea4-f0ad40c25fd8.gif)
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/494129b9-4312-4b7d-9c64-04234623da9c.gif)
而文章开头部分,描述了初始化订阅时,列msrepl_tran_version无效。在详细信息里面可以,错误发生在 create procedure [dbo].[sp_MSins_dboProduct] 过程中。在create procedure [dbo].[sp_MSins_dboProduct] 动作之前,没有对订阅数据库表Product增加字段msrepl_tran_version。 接下来,去看看发布表Product的项目属性:
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/03b51acf-cdf7-4f71-98e9-c6c788232c31.jpg)
图3. 发布表Product的项目属性
从图3. 可以看到【目标对象】中的【名称已被使用时的操作】选的是【删除数据。如果项目有行筛选器,则仅删除与该筛选器匹配的数据】,这里的就会导致,在初始化订阅的时候,不会对表Product增加字段msrepl_tran_version。也因为导致了,文章开头说的那错误:列名 'msrepl_tran_version' 无效 。(源: MSSQLSERVER,错误号: 207 )
问题解决:
出现列名 'msrepl_tran_version' 无效,问题原因找出来了,接下来,就是解决问题,这里从两个方法去解决,你可以根据自己实际的生产环境,选择哪一种更快捷的方法:
1. 在发布表的项目属性,【目标对象】中的【名称已被使用时的操作】选【删除现有对象并创建新对象】
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/0623ee2c-c386-4f4e-ad99-cb44de294b3f.jpg)
图4.设置发布表Product的项目属性。
设置完成后,需要重新初始化各个订阅,这样就ok了。
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/6531572c-fdad-4ee6-bcfe-d9893f120b87.jpg)
图5.同步复制初始化操作过程
2. 在订阅数据库表中,增加字段msrepl_tran_version
Alter Table Product Add msrepl_tran_version uniqueidentifier Not null Default(newid())
在订阅数据库表Product增加字段msrepl_tran_version后,保持之前发布表,【目标对象】中【名称已被使用时的操作】选的【删除数据。如果项目有行筛选器,则仅删除与该筛选器匹配的数据】。或者选择【现有对象保持不变】。然后就等初始化订阅,或手工启动初始化订阅。
(完.)
![airtran,可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效](/Files/20115/6b0921d7-3f67-4fd0-8ddf-58b400969630.jpg)
No incapable except unthinkable.
MSN:[email protected]
最新评论