sql server导出表为excel

问题描述 投票:1回答:2

我正在尝试将表导出到excel / csv中,但是我遇到了麻烦,因为有一个列很长并且已经与“char(10)+ char(13)”的分隔符连接在一起。当我从sql server management studio复制所有数据并使用“另存为”csv文件时,输出会被破坏。每个使用新行的地方,输出都会拉伸到超过1行并打破列位置。

我也尝试使用导出向导(不知道它是否有所作为)但没有成功,因为导出在最后一步失败(收到“从nvarchar到longtext的潜在丢失转换”的警告,错误为“数据转换失败..“

sql-server excel csv
2个回答
1
投票

要允许csv中的多行字段,必须将这些字段括在引号中:

123,"multiline
field",456
789,second record,147

如果在生成的csv中不是这种情况,则可能必须告诉生成器引用字段。

如果引号已经存在,那么csv是有效的,任何体面的读者都应该处理那些多行字段。当然,如果你在记事本中打开文件,你仍然会看到每条记录多行,这是正常的。


0
投票

要避免此类问题,您需要使用以下查询通过替换SELECT语句中的回车符(char(13))和换行符(char(10))来清理数据:

SELECT替换(替换([ColumnName],char(10),''),char(13),'')FROM [dbo]。[yourTableName]

© www.soinside.com 2019 - 2024. All rights reserved.