如何使用PowerShell' invoke-SQLcmd'的结果?在'如果'声明?

时间:2016-12-06 23:42:04

标签: sql powershell

我无法弄清楚如何获取查询结果(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"
}

====== 感谢

1 个答案:

答案 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