日期:2014-05-17  浏览次数:20641 次

本地数据库比远程数据库多了一个字段,如何实现同步?
本地远程数据库都用的是SQL2005。本地数据表比远程数据表多了一个字段,多的这个字段是从程序传递过来的变量,除了这个字段外,其他的字段名称什么的都是一样的。用下面方法
insert Table select * from openquery(room_link,'select * from DataBase.dbo.Table')
提示:列名或所提借助值的数目与表定义不匹配。
如何把传过来的变量也用上面的语句一块插入到本地表中?
或者有什么别的方法?

openquery是不是只能两个数据结构完全相同的表进行同步?

------解决方案--------------------
如果是单表的话,开启连接服务器,然后写些语句来实现,不难。如果是整个库的话,使用复制技术来实现。
------解决方案--------------------
引用:
如果是单表的话,开启连接服务器,然后写些语句来实现,不难。如果是整个库的话,使用复制技术来实现。

使用连接服务器把变量查询出来,然后插入本地表
------解决方案--------------------
你把 * 替换为对应的字段列表就OK啦
------解决方案--------------------
这个改下sql语句就行吧
------解决方案--------------------
把*替换成对应的列,先不插入那个多的列的值,远程插入完后再单独处理那列的值
------解决方案--------------------
引用:
我改成这样的语句,没有加那个多出的字段
insert BWSet select ID,bwType,BlackWhiteStr,BlackChStr from openquery(room_link,'select ID,bwType,BlackWhiteStr,BlackChStr from monitorplatform.dbo.BWSet')
还是出现:插入错误,列名或所提供值的数目与表……
写得不对,自己再思考一下吧。
------解决方案--------------------
引用:
我改成这样的语句,没有加那个多出的字段
insert BWSet select ID,bwType,BlackWhiteStr,BlackChStr from openquery(room_link,'select ID,bwType,BlackWhiteStr,BlackChStr from monitorplatform.dbo.BWSet')
还是出现:插入错误……

insert BWSet (ID,bwType,BlackWhiteStr,BlackChStr) select ID,bwType,BlackWhiteStr,BlackChStr from openquery(room_link,'select ID,bwType,BlackWhiteStr,BlackChStr from monitorplatform.dbo.BWSet')