繁体   English   中英

使用作业代理将 sqlcmd 的输出附加到文件

[英]Append output of sqlcmd to file using Job Agent

经过一番研究,我找到了将 sqlcmd 命令的输出附加到 csv 文件的解决方案。 使用命令外壳时一切正常:

C:\temp>sqlcmd -S <SERVER> -d <DATABASE> -E -Q "SELECT [something] FROM [TableX] WHERE [columnY] IS NOT NULL;" -W -h-1 -s";" >>"<FULL_PATH_TO_CSV-FILE>"

我想通过使用 SQL Server 作业代理(使用与控制台相同的帐户)来安排这些东西,所以我添加了一个作业(键入 CmdExec)。 作业执行失败并出现以下错误(意外参数):

Meldung Ausgeführt 和 Benutzer:“[帐户]”。 Sqlcmd: '>>''[FULL_PATH_TO_CSV-FILE]'': Unerwartetes 参数。 Geben Sie '-?' 嗯,嗯,死了 Hilfe anzuzeigen。 Prozessexitcode 1. Fehler bei Schritt。

我的解决方法工作正常:删除>>"<FULL_PATH_TO_CSV-FILE>"并使用该步骤的输出文件。 但是:我想将输出文件用于记录目的 - 而不是用于数据输出......

问题是:为什么“>>”命令在 SQL Server 代理作业中不起作用?

我不想简单地重定向输出。 我知道 sqlcmd 为此提供了参数-o 在这种情况下,现有文件将被覆盖。 那不是我想要的。

不幸的是,到目前为止,我没有发布屏幕截图的声誉。

非常感谢您提前!

最好的问候, DC

我认为这里的问题是 SQL 服务器代理创建进程“sqlcmd”并将整行作为参数发送给它。 所以“sqlcmd”不知道这意味着什么 - “>>...”并返回错误。

要使用此 (">>") 命令外壳语法,您应该在 SQL 代理中调用它。 所以尝试:

cmd.exe /c "sqlcmd -S -d -E -Q "SELECT [something] FROM [TableX] WHERE [columnY] 不是 NULL;" -W -h-1 -s";" >>"""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM