使用SQLCMD时正确输出到文件

时间:2014-05-11 00:41:36

标签: sql sql-server batch-file

我一直在玩SQLCMD将.SQL结果输出到文件中。它正在工作,但实际的SQL语句也显示在输出文件中,我显然不想要。我使用.bat文件来运行SQL文件。以下命令是我在.bat中的命令:

SQLCMD -S MyServerName -d MyDBName -i C:\test\start.SQL -o C:\test\out.txt -e

在我的start.SQL中我有以下内容:

set nocount on
    SELECT '<HEADER>', getDate(), '<HHEADER>'

SELECT UPPER(ACCTNUM), 
CONVERT(VARCHAR(10),DATEEXP,126),
UPPER(OPERID),
CONVERT(VARCHAR,CREATE_TMSTMP,120)

FROM RETURNS
WHERE CREATE_TMSTMP < getDate()
AND CREATE_TMSTMP > getDate() - 1


SELECT '<TRAILER>', getDate(), '<HHEADER>'

set nocount off

在输出文件中显示正确的信息,但它有点破旧等等,甚至显示已执行的SQL命令。有没有办法解决这个问题。我在这里做错了吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

为什么使用-e选项?

-e 将输入脚本写入标准输出设备(stdout)。

答案 1 :(得分:0)

破折号是标题的一部分。使用-h-1指定无标头。如果这是不可接受的,请使用像FINDSTR / B / V&#34; ----&#34;排除那个标题行...假设没有你想要以短划线开头的行。