如何不从存储过程中的命令shell脚本中选择OUTPUT值?

时间:2015-04-23 02:03:20

标签: sql-server xp-cmdshell

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

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

sys.xp_cmdshell @sqlCmd;

问题是首先运行它会返回OUTPUT单元格。这会抛弃报告,因为它期待正确的查询,而不仅仅是" OUTPUT"

如何省略此OUTPUT SELECT?我试图添加" NO_OUTPUT"但它仍然无效:

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

1 个答案:

答案 0 :(得分:1)

看起来您使用no_output子句调用的语法可能是个问题。虽然MSDN docs show that syntax in one of the examples,MSDN列出的语法以及this TechNet article表明它作为文字的第二个参数传递给没有引号的xp_cmdshell过程,即:

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