使用列标题将过程输出写入文件

时间:2014-04-09 12:53:37

标签: sql sql-server stored-procedures bcp

declare @sql varchar(8000)
select @sql = 'bcp "exec "'+@dbname+'"..myproc" queryout "'+@filepath+'text1.txt" -c -t "|" -r \n -T -S' + @@servername
exec master..xp_cmdshell @sql

我使用上面的查询将myproc过程输出写入管道分隔的文本文件。它工作正常,但输出文件没有列标题。

如何在不对程序代码进行任何更改的情况下添加列标题。

1 个答案:

答案 0 :(得分:0)

这有效:

-- Create Temp Table 
CREATE TABLE #TMP_TABLE(COL1 varchar(50), COL2 varchar(50), COL3 varchar(100));

-- Insert Stored Proc Data in Temp Table
INSERT INTO #TMP_TABLE
EXEC dbo.myproc;

-- Select Column name + Date (Use ' not " for String delimiter)
SELECT 'COL1', 'COL2', 'COL3'
UNION ALL
SELECT * FROM #TMP_TABLE;