我必须创建一个具有两个标题的.csv文件
示例
Filename|FileDate|Location|Numberofrows
Testfile|20190101|USA |1
Firstname|LastName|DOB |Address1 |Address2
John |Doe |20800101|123 4th street|apt 2
我只知道如何创建仅包含一个标题的CSV文件。 谁能告诉我如何从SQL以这种格式创建一个.csv文件。
我正在使用以下方法创建单个标头csv文件
DECLARE @command VARCHAR(4000)
DECLARE @FileDirectory VARCHAR(1000) = 'c:\test\'
DECLARE @HeaderFile varchar(255) = 'Headers.txt'
DECLARE @FileName VARCHAR(255)
SET @FileName = 'TestFile_' + CONVERT(VARCHAR,GETDATE(),112)
SET @command = 'bcp "select * from TESTDB.dbo.TEST_Table"'
+ ' queryout "' + @FileDirectory + @FileName + '.txt"'
+ ' -c -q -t, -T -S'+@@servername
EXEC master..xp_cmdshell @command
SET @command = 'copy "' + @FileDirectory + @HeaderFile + '"+"' + @FileDirectory + @FileName + '.txt"' + ' "' + @FileDirectory + @filename + '.csv"'
EXEC master..xp_cmdshell @command
SET @command = 'del "' + @FileDirectory + @FileName + '.txt"'
EXEC master..xp_cmdshell @command
答案 0 :(得分:1)
您已经添加了一个标题。只需使用相同的方法添加另一个即可。
dos COPY
命令使用+
运算符连接文件。
所以代替这个:
SET @command = 'copy "' +
@FileDirectory + @HeaderFile + '"+"' +
@FileDirectory + @FileName + '.txt"' +
' "' + @FileDirectory + @filename + '.csv"'
使用此:
SET @command = 'copy "' +
@FileDirectory + @HeaderFile + '"+"' +
@FileDirectory + @HeaderFile + '"+"' +
@FileDirectory + @FileName + '.txt"' +
' "' + @FileDirectory + @filename + '.csv"'
(为清楚起见,在多行中使用
如果遇到问题,可能需要打印@command
的内容以进行调试。
它应该像这样出来:
COPY C:\Folder\Header.TXT + C:\Folder\Header.TXT + C:\Folder2\Data.TXT C\OutputFile\FInalFile.CSV