문제

나는 두 개의 배열을 가지고 있습니다 System.Data.DataRow 비교하고 싶은 물건.

행에는 A와 B라는 두 개의 열이 있습니다.A 열은 키이며 B 열이 변경된 행과 추가 또는 삭제된 행을 확인하고 싶습니다.

PowerShell에서 이 작업을 어떻게 수행하나요?

도움이 되었습니까?

해결책

나는 이 작업을 수행하기 위해 얼마 전에 스크립트를 작성했습니다.스크립트(Compare-QueryResults.ps1)를 사용할 수 있습니다. 여기 그리고 Run-SQLQuery 스크립트도 필요합니다(사용 가능). 여기) 또는 이를 자신만의 스크립트나 함수로 바꿀 수 있습니다.

기본적으로 스크립트가 수행하는 작업은 각 쿼리의 결과를 가져와 각 필드가 자체 개체가 되도록 데이터 행을 분리하는 것입니다.그런 다음 Compare-Object를 사용하여 해당 행의 데이터 간의 차이점을 확인합니다.반환된 데이터 간의 모든 차이점을 보여주는 비교 개체를 반환합니다.

결과는 개체이므로 변수에 저장하고 Sort-Object 또는 Format-* cmdlet을 사용할 수 있습니다.

행운을 빌어요.스크립트에 문제가 있는 경우 알려주시면 기꺼이 안내해 드리겠습니다.나는 응용 프로그램 테스트에 이를 사용하여 프로그램의 다양한 작업에 의해 어떤 행이 수정되는지 확인했습니다.

다른 팁

두 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
    }
}

두 개의 DataRow 배열이 필요합니까?DataRow 개체에는 필요한 것을 제공하는 RowState 속성이 있습니다.MSDN 문서를 참조하세요. http://msdn.microsoft.com/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top