sql - SSMS - 将长数据导出到 Excel 文件而不截断数据
问题描述
我有一个要导出到 xls 文件中的脚本。
由于其中一个字段是产品描述,它有逗号,csv 文件不是一个好的选择。
我尝试使用 DTS 向导,但描述字段是 nvarchar(8000),当尝试转换为 varchar(255) 或 longtext 时,DTS 失败。
查询结果有 100k+ 行。
我尝试将结果发送到 .rpt 文件,但描述字段也被截断。
我尝试将结果发送到 .csv 文件,但描述字段也被截断。
我试图在 TSQL 中执行 OPENROWSET 命令,但 OLE DB 提供程序会引发错误。
有没有办法在不截断任何数据的情况下获得带有字段的 excel 结果,并且不解析很多字段(例如删除逗号、添加“、更改表数据结构..)?
解决方案
declare @v1 varchar(2000);
set @v1 = replicate('ab',1000)
insert into i3 values (@v1)
select * from i3
将其保存为 csv 文件。(右键单击结果并另存为 CSV)。当您在 excel 中打开 csv 文件时,我会得到整个值。
您还可以使用 BCP 将数据从 SQL Server 导出到 CSV。
您还可以使用 SSIS
您可以通过在对象资源管理器窗口中选择要从中导出的数据库并右键单击选择任务 --> 导出数据并按照选项卡来使用(在 SSMS 中)。