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

Exporting from bcp command to csv is not working

我真的在为这个特定的查询而苦苦挣扎,我们将不胜感激,

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 文件以 ' everynew line in the starting position like

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

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

使用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'