2016-12-06 79 views
0

我無法弄清楚如何獲得查詢結果(qty_records),這是5,所以我可以在PowerShell If語句中使用它。如何在'if'語句中使用PowerShell的'invoke-SQLcmd'的結果?

====

$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" 
} 

====== 感謝

回答

3

我覺得這裏的問題是,調用,SQLCMD返回即使它只有返回單個值的數據行,所以你需要公開實際的內容。由於我在SQL中工作了一段時間,所以我對返回值的命名方式有些模糊,但我確信根據您的SELECT,它將返回一個.qty_records屬性,因此您需要修改if語句像這樣

if ($qty_records.qty_records -gt 4) { 
    write-host "do something" 
} else { 
    Write-Host "do something else" 
} 

請注意,它可能會返回爲.CustomerNumber如果我不正確地回憶機制。如果您對其他使用數據行的方法感興趣,我建議您查看This Post