powershell - 在powershell中使用Invoke-Sqlcmd时区分sql错误和空结果
问题描述
我正在使用 ps 脚本调用 db 并执行 select 语句。问题在于存在一些 sql 错误(例如权限问题)或空结果的两种情况下,我无法判断是失败还是只是空响应。
$Result = Invoke-Sqlcmd -ServerInstanc $sqlServer -Database $database -Query $query
因此,即使 db user 存在权限问题,结果变量也为空,并且在空表的情况下,结果变量也为空。
我如何区分两者?
解决方案
要检查一个值是否为空值,在 powershell 实例的上下文中,或者在失败的查询和空结果的上下文中,由用户错误或其他一些问题:
if ($item -eq $null){
Write-Host "Item is null"
}
要检查一个值是否是一个特殊的 DBNull 值,也就是说从一个空的数据库结果中提取的值,比如你的空表示例:
if ($item -eq [System.DBNull]::Value)
Write-Host "Item is a null db value"
}
推荐阅读
- powerbi - 如何不在表格中显示空白值
- css - 无法将自定义字体添加到 Rails 应用程序
- git - 推送的本地分支在远程显示为陈旧
- ios - 由于 NSMicrophoneUsageDescription 缺失,Apple 应用审核流程被拒绝
- pdfbox - PDFTextStripper:最后一个字母位于第一个字母之前
- python - CTCI 第 6 版 1.9
- powershell - powershell 脚本的第二行不起作用
- laravel - 如何为使用 laravel 从数据库调用的内容显示一定数量的字符?
- swift - 为什么我不能用 .cornerRadius() 在 VStack 中编辑 TextField?
- python - 数据帧的动态分组