如何 NOT SELECT 来自存储过程中命令 shell 脚本的 OUTPUT 值?

How to NOT SELECT the OUTPUT value from a command shell script inside a stored procedure?

我有一个由 SSRS 报告使用的存储过程。

但是在我 运行 查询之前我需要 运行 这个:

sys.xp_cmdshell @sqlCmd;

问题是 运行首先 returns 输出单元格。这会抛出报告,因为它需要正确的查询而不仅仅是 "OUTPUT"

如何省略此输出 SELECT?我尝试添加 "NO_OUTPUT" 但它仍然不起作用:

SET @sqlCmd = '"C:\Program Files (x86)\ImageConverter\ImageConverter.exe", NO_OUTPUT';

看起来您使用 no_output 子句调用的语法可能是问题所在。虽然 MSDN docs show that syntax in one of the examples, the MSDN listed syntax, as well as this TechNet article 建议它作为文字第二个参数传递给 xp_cmdshell 过程而不带引号,即:

SET @sqlCmd = '"C:\Program Files (x86)\ImageConverter\ImageConverter.exe"'
exec master..xp_cmdshell @sqlCmd, NO_OUTPUT;