软件使用C#编写,使用两个数据库,主数据库为网络数据库SQL Server2008,备用数据库为本地数据库access,当用户无法访问网络时,自动连接access数据库继续进行数据保存,当网络恢复后,重新连接网络数据库,并将access数据库中尚未上传的数据自动同步上传至网络数据库。
基本思路是这样,本来想通过代码,逐行上传本地数据的数据,但想想要涉及40个数据表,代码量太大了,是否有什么便捷的方式,调用数据库的自带函数完成上传作业?
连接网络数据库后,执行下面的语句能否实现上述效果?
USE SQL SERVER Jobs!
Command:
INSERT INTO [TableOfSQL] ([ID],[F1],[F2],[F3])
SELECT [ID],[F1],[F2],[F3]
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=\..\XXX.mdb')...[TableOfAccess] AS T1
WHERE [T1].[ID] NOT IN (SELECT [ID] FROM [TableOfSQL]
能不能难道你自己不会试验么?
sqlserver 客户端 带数据导入导出功能,直接用就好了
如果都有行标识就用行标识,如果没有可以增加行标识(也可以用时间),网络判断OK后,去服务器取最新标识,然后读取access,插入sqlserver,如果双方表名列名统一那么不用map,否则需要map,至于sql拼装很简单,你也可以使用orm反射来自动化——当然道理还是一样的。