【发布时间】:2016-05-12 00:00:07
【问题描述】:
我正在通过 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 是空的
【问题讨论】:
-
您是否希望 $dump 包含错误? $dump 将只包含发送到输出流的数据。如果它来自错误流,您需要重定向
$dump = sqlcmd -S $server -Q $sqlCommand -t $queryTimeout -b -h -1 -W 2>&1... 可能 -
SQLCMD 是一个奇怪的生物。我会通过在 SQL 中运行查询并检查您是否确实得到了结果来确认,然后弄乱开关。我倾向于运行完整的脚本,所以我使用
-i并给出一个文件名,但我只能让它与& (SQLCMD) -s localhost -x -i $file一起工作。尝试移除所有开关,如果得到结果,请重新添加它们。 -
我希望转储包含 sql 文件的输出,就像我在 SQL 管理工作室中运行它一样
-
@Matt 您给出的示例有效,谢谢,请给出答案。 2>&1 用于什么?
标签: sql-server windows powershell sql-server-2012 powershell-3.0