Sql server express SQL Server Express上表的同步框架BulkInsertCommand
我通过WCF使用同步,我的服务器和客户端是SQL server EXPRESS 2008(为了开发,我使用了一个SQL EXPRESS实例) 我在服务器上添加了同步过滤器模板,并基于此模板创建了我的所有作用域。客户端和服务器端的表结构相同。当我首先启动我的应用程序时,所有系统表SP都会在两侧创建好触发器 但是在同步过程中(Sql server express SQL Server Express上表的同步框架BulkInsertCommand,sql-server-express,microsoft-sync-framework,Sql Server Express,Microsoft Sync Framework,我通过WCF使用同步,我的服务器和客户端是SQL server EXPRESS 2008(为了开发,我使用了一个SQL EXPRESS实例) 我在服务器上添加了同步过滤器模板,并基于此模板创建了我的所有作用域。客户端和服务器端的表结构相同。当我首先启动我的应用程序时,所有系统表SP都会在两侧创建好触发器 但是在同步过程中(localProvider是服务器,RemoteProviderclient) 我遇到了下一个异常: {“未能为表'MySyncTable'执行命令'BulkInsertCom
localProvider
是服务器,RemoteProvider
client)
我遇到了下一个异常:
{“未能为表'MySyncTable'执行命令'BulkInsertCommand';事务已回滚。请确保命令语法正确。”}
内部异常:
{“将nvarchar值'after sync'转换为数据类型位时,转换失败。\r\n表值参数“@changeTable\”的数据与参数的表类型不符。\r\n语句已终止。“”
至于我,看起来我有不同的表结构,我查看服务器端的BulkInsertCommand
,没有发现任何错误
它可能与筛选器作用域有关,或者为什么同步生成此错误
谢谢。您以前是否在同一组表上设置了不同的作用域 您是否手动清理同步框架生成的对象,而不是使用deprovisioning API 如果您对上述任何一项都这样做了,那么很可能是因为它使用了过时的UDT 如果没有在数据库上定义任何其他作用域,请尝试DeprovisionStore取消对整个数据库的提供,并删除所有同步框架创建的对象
如果您有其他作用域,请使用DeprovisionScope取消提供与问题表关联的所有作用域。我清除了与DeprovisionStore的同步信息,并重新创建了作用域,现在所有作用域都在工作。。。。谢谢
SyncOrchestrator orchestrator = new SyncOrchestrator
{
LocalProvider = localProvider,
RemoteProvider = remoteProvider,
Direction = SyncDirectionOrder.Download
};