我通过power shell运行以下sqlcmd
$dump = sqlcmd -S $server -Q $sqlCommand -t $queryTimeout -b -h -1 -W
我尝试将输出写入屏幕
$message = "Error while executing sql {0}, Error details {1}" -f "$sqlCommand","$dump"
Write-Warning $message
但$dump
为空
答案 0 :(得分:1)
我不熟悉sqlcmd.exe
但是根据您的期望描述,我认为sqlcmd正在向错误流中发送信息。这是一种看似奇怪但常见的做法,因此也就是出现。
这里的问题是变量$dump
只会收集发送到输出流的信息。您可以做的是使用重定向器将错误流重定向到输出流。有关详细信息,请查看about_redirection
因此,使用以下内容将实现:
$dump = sqlcmd -S $server -Q $sqlCommand -t $queryTimeout -b -h -1 -W 2>&1
链接文档将2>&1
描述为
将错误(2)和成功输出(1)发送到成功输出流。
现在$dump
应该包含您要查找的内容。但请注意,因为它可能包含比您预期的更多信息。