从bcp命令导出到csv不起作用

时间:2015-06-18 04:19:03

标签: sql-server-2008 csv bcp

我真的在努力解决这个问题,我们将非常感谢任何帮助,

create table test(int a, int b, int c)

INSERT INTO test
select 5, 6, 7
union all
select 1, 2, 3

DECLARE @sql varchar(2000),
@filename varchar(200)
SET @sql      = 'select * from test '
set @filename = 'D:\New folder\myfile.csv '

set @sql = 'bcp "' + @sql + '" queryout "' +  @filename +'" -c -r"''\n" -t"'',''" -S localhost\mytest -T'

EXEC Master..xp_CmdShell @SQL

我尝试导出到csv文件但我的数据不是以'值。

目前我正在

5','6','7'
1','2','3'

相反,我希望csv文件以'开头。在起始位置的每条新线,如

 '5','6','7'
 '1','2','3'

我使用了不同的引用标识符,但它仍然不起作用。

1 个答案:

答案 0 :(得分:1)

使用QUOTENAME函数指定单引号,并将列分隔符设置为逗号。你必须建立你的查询。

    DECLARE @sql varchar(2000),
    @filename varchar(200)
    SET @sql = 'select QUOTENAME(a, CHAR(39)), QUOTENAME(b, CHAR(39)), QUOTENAME(c, CHAR(39)) from test'
    set @filename = 'D:\New folder\myfile.csv '

    set @sql = 'bcp "' + @sql + '" queryout "' +  @filename +'" -c -r"''\n" -t"," -S localhost\mytest -T'