使用 Job Agent 将 sqlcmd 的输出附加到文件
Append output of sqlcmd to file using Job Agent
经过一番研究,我找到了将 sqlcmd 命令的输出附加到 csv 文件的解决方案。使用命令 Shell:
时一切正常
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 服务器作业代理(使用与控制台相同的帐户)来安排这些东西,所以我添加了一个作业(类型 CmdExec)。作业执行失败并出现以下错误(意外参数):
Meldung
Ausgeführt als Benutzer: ''[ACCOUNT]''. Sqlcmd: '>>''[FULL_PATH_TO_CSV-FILE]'': Unerwartetes Argument. Geben Sie '-?' ein, um die Hilfe anzuzeigen. Prozessexitcode 1. Fehler bei Schritt.
我的解决方法工作正常:删除 >>"<FULL_PATH_TO_CSV-FILE>"
并使用该步骤的输出文件。但是:我想将输出文件用于记录目的 - 而不是用于数据输出...
问题是:为什么“>>”命令在 SQL 服务器代理作业中不起作用?
我不想简单地重定向输出。我知道 sqlcmd 为此提供了参数 -o
。在这种情况下,现有文件将被覆盖。这不是我想要的。
不幸的是,到目前为止,我还没有 post 截图的声誉。
非常感谢您!
此致,
D.C.
我认为这里的问题是 SQL 服务器代理创建进程 "sqlcmd" 并将整行作为参数发送给它。所以 "sqlcmd" 不知道这是什么意思 - ">>..." 和 returns 有错误。
要使用此 (">>") 命令 Shell 语法,您应该在 SQL 代理中调用它。所以尝试:
cmd.exe /c "sqlcmd -S -d -E -Q "SELECT [something] FROM [TableX] WHERE [columnY] IS NOT NULL;" -W -h-1 -s";" >>"""
经过一番研究,我找到了将 sqlcmd 命令的输出附加到 csv 文件的解决方案。使用命令 Shell:
时一切正常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 服务器作业代理(使用与控制台相同的帐户)来安排这些东西,所以我添加了一个作业(类型 CmdExec)。作业执行失败并出现以下错误(意外参数):
Meldung Ausgeführt als Benutzer: ''[ACCOUNT]''. Sqlcmd: '>>''[FULL_PATH_TO_CSV-FILE]'': Unerwartetes Argument. Geben Sie '-?' ein, um die Hilfe anzuzeigen. Prozessexitcode 1. Fehler bei Schritt.
我的解决方法工作正常:删除 >>"<FULL_PATH_TO_CSV-FILE>"
并使用该步骤的输出文件。但是:我想将输出文件用于记录目的 - 而不是用于数据输出...
问题是:为什么“>>”命令在 SQL 服务器代理作业中不起作用?
我不想简单地重定向输出。我知道 sqlcmd 为此提供了参数 -o
。在这种情况下,现有文件将被覆盖。这不是我想要的。
不幸的是,到目前为止,我还没有 post 截图的声誉。
非常感谢您!
此致, D.C.
我认为这里的问题是 SQL 服务器代理创建进程 "sqlcmd" 并将整行作为参数发送给它。所以 "sqlcmd" 不知道这是什么意思 - ">>..." 和 returns 有错误。
要使用此 (">>") 命令 Shell 语法,您应该在 SQL 代理中调用它。所以尝试:
cmd.exe /c "sqlcmd -S -d -E -Q "SELECT [something] FROM [TableX] WHERE [columnY] IS NOT NULL;" -W -h-1 -s";" >>"""