我正在编写一个表差异实用程序,用于检查access和sql server中相似的架构表之间的差异。我只想知道什么是实现它的最快方法,因为我在两个数据库中都有非常大量的表。
我正在比较两个表,比方说,在access和SQL中,tableX具有相同的模式、相同的列定义和约束,并且它在表中有不同的行和元组,我想找出差异并提取差异
谢谢Steave
发布于 2012-06-17 00:26:35
不幸的是,听起来您希望在两个不同的系统之间进行非常细粒度的差异,这不允许很高的效率。
如果表不是太大,最好的选择可能是导出到CSV(请确保对结果进行排序!)并对它们运行diff命令。
发布于 2012-06-16 16:57:23
如果您只需要检查字段名称和类型,那么ADO可能适合:http://www.w3schools.com/ado/met_conn_openschema.asp。Access字段类型和SQL Server字段类型之间不会完全匹配。
发布于 2012-06-17 01:57:11
创建到ms access数据库的链接服务器,并使用查询来比较您的表:
EXEC sp_addlinkedserver @server = 'DBName'
, @provider = 'Microsoft.Jet.OLEDB.4.0'
, @srvproduct = 'OLE DB Provider for Jet'
, @datasrc = 'C:\myaccessdb.mdb'使用如下查询比较两个表是最简单的
SELECT MIN(table_name), column1, column2, ...
FROM (
SELECT 'sql server table' , column1, column2, ...
FROM A
UNION ALL
SELECT 'msaccess table' , column1, column2, ...
FROM B) tmp
GROUP BY column1, column2, ...
HAVING COUNT(*) = 1另一种选择是使用Sql Server附带的tablediff.exe实用程序。请参阅more info on msdn
https://stackoverflow.com/questions/11062050
复制相似问题