下面的我的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
答案 0 :(得分:0)
只需将函数执行结果放入变量并进行比较即可。像这样:
$var1 = readServer1 | Select -Expand id
$var2 = readServer2 | Select -Expand id
if ($var1 -ne $var2) { Do-That }