2017-07-14 72 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匹配的行。如果您想對此進行比較,則只能選擇一個列。

相關問題