我有以下命令:
sqlcmd -S CHLWBIDB204 -d PayrollReports -U finance_lookup -P lawson -i"L:\Lawson\EEIMPORT.sql" -W -o "Z:\EmployeeImport.csv" -h-1 -s","
它工作得很好,除了这个文件的接收者不能用空行和它提供的总数接受它。
类似的东西:
...
(line 10) 1, 2292, KPR, 7.94
(line 11)
(line 12) (10 rows affected)
第11行和第12行不能在文件中,所以我认为需要一些命令才能在空行处停止。
答案 0 :(得分:1)
您需要做的就是将输出传输到FINDSTR并过滤掉不需要的行。
/ V选项会抛弃匹配的行。下面的命令查找空行和您的计数行。搜索条件可能需要改进 - 我没有sqlcmd来测试。
sqlcmd .... | findstr /v /c:"^$" /c:"([0-9]* rows affected)"
您可以搜索要保留的行,而不是搜索要丢弃的行。只要所需的输出始终至少有2个逗号分隔列,那么您只需搜索包含逗号的任何行。
sqlcmd .... | find ","
答案 1 :(得分:0)
如果您可以编辑.sql
文件,请在SELECT语句之前添加SET NOCOUNT ON;
。 (或者,以不同的名称保存脚本的修改版本并改为使用它。)
这将取消… rows affected
消息(与前面的空行一起)。