我无法弄清楚如何获取查询结果(qty_records)为5,因此我可以在PowerShell If语句中使用它。
====
$my_query = "select count(CustomerNumber) as qty_records from customers"
$qty_records = Invoke-Sqlcmd -Query $my_query -ServerInstance "2008c" -Username sa -Password abc.1234 -Database MikeDB
if ($qty_records -gt 4) {
write-host "do something"
} else {
Write-Host "do something else"
}
====== 感谢
答案 0 :(得分:5)
我认为这里的问题是Invoke-SqlCmd返回一个数据行,即使它只返回一个值,所以你需要公开实际的内容。自从我在SQL中工作已经有一段时间了,所以我对返回值的命名方式有点模糊,但我有理由相信你的SELECT
会返回.qty_records
属性,所以你需要像这样修改你的if语句
if ($qty_records.qty_records -gt 4) {
write-host "do something"
} else {
Write-Host "do something else"
}
请注意,如果我错误地回忆起这些机制,它可能会返回.CustomerNumber
。如果您对使用datarows的其他方法感兴趣,我建议您查看This Post