合并代理失败,因为发布服务器上的项目架构与订阅服务器上的项目架构不匹配。当订阅服务器上有待处理的 DDL 更改等待应用时,可能会发生这种情况。重新启动合并代理以应用 DDL 更改并同步订阅。(来源:MSSQL_REPL,错误号:MSSQL_REPL-2147199398)>
将数据类型 varchar 转换为 geometry 时出错。(来源:MSSQLServer,错误编号:8114)获取帮助:http://帮助/8114
答案1
我不确定这是否是一个错误,但我能够成功复制几何数据的唯一方法是在发布者上使用以下设置(文章属性,设置所有表的属性) -:
Convert filestream to MAX data types - True
奇怪的是,“将空间转换为 MAX 数据类型”无法解决问题。还需要选择“复制空间索引 - True”才能支持空间索引。除此之外,默认设置应该没问题。
答案2
要产生上述错误,请按照以下步骤操作:
--步骤 1:在 sql server 2008 r2 enterprise 或 developer edition 上创建数据库 create database replicationtest; go
如果 OBJECT_ID ('dbo.SpatialTable','U') 不为空,则删除表 dbo.SpatialTable;GO
--步骤 2:创建一个存储几何数据类型的表 CREATE TABLE SpatialTable ( id int IDENTITY (1,1), GeomCol1 geometry, GeomCol2 AS GeomCol1.STAsText() ); GO
--步骤 3: 插入一些示例记录 INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
--步骤 4:--在此企业版上配置分销商--在上述数据库上创建发布
--步骤 5: 在 SQL Server 2008 r2 快速版本上创建订阅者(使用推送订阅)
--步骤 6:现在一旦应用了快照,两个数据库就会同步
--步骤 7:在发布者上面的表格中插入一行 INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0)); GO
--步骤 6:启动复制监视器并观察错误:
合并代理失败,因为发布服务器上的项目架构与订阅服务器上的项目架构不匹配。当订阅服务器上有待处理的 DDL 更改等待应用时,可能会发生这种情况。重新启动合并代理以应用 DDL 更改并同步订阅。(来源:MSSQL_REPL,错误号:MSSQL_REPL-2147199398)>
Error converting data type varchar to geometry. (Source: MSSQLServer, Error number: 8114) Get help: http://help/8114
答案3
将 SQL Server 2008 兼容性设置设为 SQL Server 2008。
它可能被设置为 SQL Server 2005 兼容性,它不支持几何列。