我必须从SQL Server导出一个表,该表包含一列,该列的文本内容较大,最大文本长度可达100,000个字符。
当我将Excel用作导出目标时,我发现此文本的长度受限制并被截断为32,765。
是否有保留长度的导出格式?
注意:
答案 0 :(得分:3)
如Excel specifications and limits中所述,单个Excel单元格中最多可以存储32,767个字符;因此,为什么您的数据被截断。
您最好导出为CSV,但是,请注意,在bcp
/ BULK INSERT
中,直到SQL Server 2019才支持报价标识的CSV文件(当前在预览中)。您可以使用||
之类的字符来表示一个以空格分隔的字段,但是,如果有任何换行符,则还需要选择其他行分隔符。但是,SSIS和其他ETL工具 do 支持引号标识的CSV文件;所以你可以使用类似的东西。
否则,如果您需要导出这么长的值并希望尽可能多地使用Excel(由于那些糟糕的ACE驱动程序,我个人不建议这样做),我建议导出(n)varchar(MAX)
值转换为其他内容(例如文本文件),并使用您的主键值命名每个文件。然后,当您将数据导入回来时,您可以再次从每个文件中获取(n)varchar(MAX)
值。
答案 1 :(得分:-1)
.sql是sql表的最佳格式。是sql表的本机格式,因此您不必协调导出。