繁体   English   中英

如何使用命令行将特定表从SQL Server数据库导出到CSV文件,并在字段周围加引号?

[英]How to export specific table from SQL Server database to CSV file with quotes around fields using command line?

我想从SQL Server数据库导出整个表。

要求是:

  1. 值应用双引号引起来。
  2. 有些值确实很长,因此该方法应支持很长的值。
  3. 将'NULL'值作为空字符串(即,“”“)导出到CSV
  4. 我不知道列是什么,只是数据库表名,所以请不要提出明确包含列名的查询

示例行:

1,some
very

long
value
which might contain a comma,
or a newline, etc...,9,\path\tofile,444,X,,2011-01-01,

应该导出为:

"1","some
very

long
value
which might contain a comma,
or a newline, etc...","9","\path\tofile","444","X","","2011-01-01",

我尝试使用BCP

bcp TABLENAME out TABLENAME.csv -U username -P password -S server -c -t','

但它不会用引号将值引起来。

谢谢

bcp "select quotename(isnull(col1, \"\"), '\"') as col1 from db.schema.table" queryout TABLENAME.csv -U username -P password -S server -c -t',' 

不知道您对“长值”的定义是什么,但是QUOTENAME()限制为128个字符。 如果您需要更长的支持时间,请尝试使用CONCAT()或滚动您自己的函数。 要转义双引号,您还可以尝试使用CHAR(34)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM