2017-07-14 112 views
4

我们有许多|(管道)分隔的平面文件,我们每天都在SQL Server中使用SSIS包进行处理。每个平面文件分为标题部分,内容部分和页脚部分。我们经常更新版本的相同文件。我们试图在两个版本的相同文件之间实现文件比较功能,以减轻处理负担。比较两个平面文件内容的最佳方法

哪种方法更高效?

  1. 将两个版本的相同文件存储到具有校验和列的单独SQL Server表中,并筛选出校验和值不匹配的行。

  2. 在C#中实现类似的校验和逻辑或C#中可用的任何其他比较算法。

您可能会建议任何其他新算法来实现相同。

+0

你能粘贴文件的小内容吗? –

+0

为你做了这个工作Murali? – scsimon

+0

Verson 1文件: H1 | 11 | 111111111111111 | | 111111111 | AAAAAAA | 2222222 | 20160205 | H2 | 33 | test test | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 20160205 H3 | 33 | 44 | 55 | 55 | 66 | 77 | Verson 2文件: H1 | 11 | 55555555555 | | 7777777 | BBBBBBBB | 666666 | 20160205 | H2 | 33 | test test | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 20160205 H3 | 33 | 44 | 55 | 55 | 66 | 77 | –

回答

0

好吧,如果你已经将这两个文件都加载到SQL Server中,那么根据你的目标是什么,一个快速的方法是使用EXCEPT() or INTERSECT()

select * from version2 
except 
select * from version1 

这将在version2返回行认为并没有完全在version1匹配的行。如果您想对此进行比较,则只能选择一个列。

相关问题