Sql server SQL计数上IF语句的语法

Sql server SQL计数上IF语句的语法,sql-server,powershell,Sql Server,Powershell,在PowerShell中,我试图编写一个if语句,说明来自SQL Server的COUNT结果是否大于0。以下是我所拥有的: $SqlConnection=新对象System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString=“我们的连接字符串” $SqlCmd=New Object System.Data.SqlClient.SqlCommand $SqlCmd.CommandText=“从SourceId为NULL的db

在PowerShell中,我试图编写一个
if
语句,说明来自SQL Server的
COUNT
结果是否大于0。以下是我所拥有的:

$SqlConnection=新对象System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString=“我们的连接字符串”
$SqlCmd=New Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText=“从SourceId为NULL的dbo.Source中选择COUNT(*)”
$SqlCmd.Connection=$SqlConnection
$SqlAdapter=新对象System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand=$SqlCmd
$DataSet=新对象System.Data.DataSet
$Table=新对象System.Data.DataTable
$SqlAdapter.Fill($Table)| Out Null
如果($Table>0){
写入输出“计数大于零,请调查”
}
我知道底部的
if
语句语法不好,我尝试过许多其他表达方式,但都没有用。我运行脚本,没有任何错误,但它只是完成了,什么也没发生。我已经验证过,如果我从
$SqlAdapter.Fill()
行中删除
Out Null
,PowerShell将返回一个计数,因此在该点起作用之前我知道一切


如果计数大于1,我只需要让它写入输出,在这个SQL查询中,它肯定大于1。如果语句,我将如何编写此
语句?

这应该满足您的要求

if ($Table.Column1 -gt 0) {
    Write-Output "The Count is greater than zero, please investigate"
}

由于您没有为数据表提供任何架构,因此计数将进入列名Column1

只需捕获
$SqlAdapter的输出。在变量中填充($table)
,而不是通过
Out Null
抑制它,然后检查该变量

$cnt = $SqlAdapter.Fill($Table)

if ($cnt -gt 0) {
    # do stuff
}

$Table.什么-gt 0
;另外,与DataTable相比,只返回标量()会更简单。(第一列/行数据槽包含计数值。)@user2864740好的,但是如果只是一个计数查询,而该列没有名称,那么“what???”中会出现什么呢。。让我们看一看。请注意,第一列/行将具有COUNT的值。在处理“表”时,DataTables更好。请参阅.Count以了解DataTable中的“行计数”。但是,它仍然是不正确的。谢谢@user2864740让我试试你的ExecuteScalar建议,看看我有什么想法。