比较2个数据库服务器

时间:2017-03-09 12:53:23

标签: powershell datatable

下面的我的PowerShell脚本运行良好,并返回1 DataTable中不同数据库中的两行,但我无法弄清楚如何比较这两行。

情况是我有2个数据库服务器,并希望比较同一个表中的max(id),比较,如果它们不同则可能发出警报。

我可以做的提醒位,但我以前没有使用DataTable

function readServer1 {
    # Connection variables
    $server = "db1"
    $port = 1234
    $driver = "Adaptive Server Enterprise"
    $query = "select max(id) as 'id' from table"
    $db = "db"
    $uid = "uid"
    $pwd = "pwd"
    # Create Object and Connection
    $conn = New-Object System.Data.Odbc.OdbcConnection
    $conn.ConnectionString = "driver={$driver};db=$db;na=$server,$port;uid=$uid;pwd=$pwd;"
    $conn.Open()
    $cmd = New-Object System.Data.Odbc.OdbcCommand($query, $conn)
    $cmd.CommandTimeout = 30
    # Create a Data Table
    $dt = New-Object System.Data.DataTable
    $dt.Load($cmd.ExecuteReader())
    $dt.Rows
    # Close Connection
    $conn.Close()
}

function readServer2 {
    # Connection variables
    $server = "db2"
    $port = 1234
    $driver = "Adaptive Server Enterprise"
    $query = "select max(id) as 'id' from table"
    $db = "db"
    $uid = "uid"
    $pwd = "pwd"
    # Create Object and Connection
    $conn = New-Object System.Data.Odbc.OdbcConnection
    $conn.ConnectionString = "driver={$driver};db=$db;na=$server,$port;uid=$uid;pwd=$pwd;"
    $conn.Open()
    $cmd = New-Object System.Data.Odbc.OdbcCommand($query, $conn)
    $cmd.CommandTimeout = 30
    # Create a Data Table
    $dt = New-Object System.Data.DataTable
    $dt.Load($cmd.ExecuteReader())
    $dt.Rows
    # Close Connection
    $conn.Close()
}

readServer1 
readServer2

它会返回如下结果:

id
--
12345
12346

1 个答案:

答案 0 :(得分:0)

只需将函数执行结果放入变量并进行比较即可。像这样:

$var1 = readServer1 | Select -Expand id
$var2 = readServer2 | Select -Expand id
if ($var1 -ne $var2) { Do-That }