尝试将SQL Server数据库查询结果导出到.csv文件我根据它所呈现的内容here具有类似的输出情况但是我有一个不同的方法我打开一个新线程。
我有一个复杂的查询,通过一些临时表使用一些过滤器连接几个表。我正在执行存储过程:
EXEC xp_cmdshell 'SQLCMD -S . -d myDATABASE -Q "EXECUTE myStoreProcedure;" -s " " -x -o "d:\result.csv"';
我将所有数据都存入result.csv,但文件的开头包含一些
(10 rows affected)
(4 rows affected)
(23 rows affected)
(5 rows affected)
(8 rows affected)
(2 rows affected)
//followed by the header columns - as expected
----------------------------------------------------------------------
//and effective results - as expected
我不希望输出和虚线。我愿意接受任何建议/解决方法。
答案 0 :(得分:1)
我想你要添加
SET NOCOUNT ON;
作为存储过程的第一行
并添加" -h -1"到你的SQLCMD电话
编辑:@siyual在nocount部分打败了我。我会把它留下来,但他先得到它: - )编辑2:好的,我编写了一个简短的例子来说明我的意思和它产生的输出
--EXEC xp_cmdshell 'SQLCMD -h -1 -S myserver -d Scratchpad_A -Q "EXECUTE spDummy;" -s " " -x -o "C:\TEMP result.csv"';
CREATE procedure spDummy as
SET NOCOUNT ON;
DECLARE @T TABLE( Person varchar(7), FavCol varchar(7));
INSERT INTO @T(Person, FavCol) VALUES ('Alice','Red'), ('Bob','Yellow'), ('Cindy','Green'), ('Dan','Blue');
SELECT 'Person' as H1, 'FavCol' as H2;
SELECT * FROM @T
它给了我输出
Person FavCol
Alice Red
Bob Yellow
Cindy Green
Dan Blue
这与您的需求相比如何?如果那不是您正在寻找的,也许您可以尝试不同的方式来解释它?