【问题标题】:Identfying SQL Server NULL in Powershell在 Powershell 中识别 SQL Server NULL
【发布时间】:2016-03-29 22:22:37
【问题描述】:

下面是 Powershell 的代码 sn-p

$query =  "select MAX(convert(varchar(10),server_time,102))from status_history where status not like ('ERROR FETCHING%')" 
$servers = Invoke-Sqlcmd2 -query $query -ServerInstance "100.81.60.2" -Database "temp" -Username "temp" -password "temp"

如果$query 中包含的sql 查询返回NULL,我需要检查Powershell。 我尝试使用

if($servers.Column1 -eq NULL)

但它似乎不起作用。

【问题讨论】:

  • 尝试使用if($servers.Column1 -eq $null) 或直接省略:if ($servers.Column1)
  • 在这种情况下使用 if ($servers.Column1) 不是一个好主意,因为像 0 或 ""(空字符串)这样的值也会计算为 $false。我会尝试[DBNull]::Value.Equals()

标签: sql sql-server powershell


【解决方案1】:

将结果与[DBNull]::Value进行比较:

if ([DBNull]::Value.Equals($server.Column1)) {
  ...
}

如果$server.Column1 包含多个值,您可能需要分别检查每个值。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 2019-04-13
    • 2014-07-17
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多