2008-08-22 80 views

回答

4

我寫了一段腳本,稍後再執行此操作。腳本(Compare-QueryResults.ps1)可用here,您還需要我的Run-SQLQuery腳本(可用here),或者您可以使用您自己的腳本或函數替換它。

基本上,腳本的功能是將每個查詢的結果分開,並將數據行分開,以便每個字段都是它自己的對象。然後它使用比較對象來檢查這些行中的數據之間的差異。它返回一個比較對象,顯示返回的數據之間的所有差異。

結果是一個對象,因此您可以將它們保存到一個變量中,並使用Sort-Object或Format- * cmdlet。

祝你好運。如果您對這些腳本有任何問題,請告訴我,我很樂意帶您瞭解這些腳本。我一直在使用它們進行應用程序測試,通過程序中的不同操作查看哪些行正在被修改。

0

您是否需要兩個DataRows數組? DataRow對象有一個RowState屬性,它會給你你所需要的。請參閱MSDN文檔:http://msdn.microsoft.com/

1

要簡單地比較兩個的System.Data.DataRow,你可以做這樣的事情:

foreach ($property in ($row1 | Get-Member -MemberType Property)) { 
    $pName = $property.Name 

    if ($row1.$pName -ne $row2.$pName) { 
     Write-Host "== $pName ==" 
     $row1.$pName 
     $row2.$pName 
    } 
}