如何在“ if”语句中使用PowerShell的“ invoke-SQLcmd”结果?

use*_*586 2 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"
}
Run Code Online (Sandbox Code Playgroud)

======谢谢

Mik*_*cio 6

我认为这里的问题是,即使Invoke-SqlCmd仅返回单个值,它也会返回一个数据行,因此您需要公开实际的内容。自从我从事SQL以来已经有一段时间了,所以我对返回值的命名方式有点模糊,但是我可以根据您的SELECT确信,它将返回一个.qty_records属性,因此您需要像这样修改if语句

if ($qty_records.qty_records -gt 4) {
  write-host "do something"
} else {
  Write-Host "do something else"
}
Run Code Online (Sandbox Code Playgroud)

请注意,它可能会返回,.CustomerNumber就像我不正确地回忆起机制一样。如果您对使用数据行的其他方法感兴趣,建议您查看这篇文章。