【问题标题】:SSMS - Export long data into excel file without truncate dataSSMS - 将长数据导出到 Excel 文件而不截断数据
【发布时间】:2019-02-06 16:39:41
【问题描述】:

我有一个脚本要导出到 xls 文件中。

由于其中一个字段是产品描述,它有逗号,csv 文件不是一个好的选择。

我尝试使用 DTS 向导,但描述字段为 nvarchar(8000) 并且尝试转换为 varchar(255) 或 longtext 时 DTS 失败。

查询结果有 100k+ 行。

我尝试将结果发送到 .rpt 文件,但描述字段也被截断。

我尝试将结果发送到 .csv 文件,但描述字段也被截断。

我尝试在 TSQL 中执行 OPENROWSET 命令,但 OLE DB 提供程序抛出错误。

有没有一种方法可以在不截断任何数据且不解析大量字段的情况下使用字段获得 excel 结果(例如,删除逗号、添加“、更改表数据结构..)?

【问题讨论】:

  • 如果每个实例都在截断值(包括 SSRS),那么听起来问题不在于 Excel,而在于您的查询(并且它正在截断文本)。否则,单个单元格的字符数超过 32,767 个。
  • 网格视图结果很好,问题是当我尝试将其保存在 xls 文件中时,rpt 也被截断
  • 肯定有问题。我从来没有遇到过将 SSRS 截断为 255 个字符(实际上是 SSIS)的问题。但是,如果不知道复制它的实际步骤,这将非常困难(不可能)排除故障。
  • @MiguelRodrigoAlbarracin 将其保存为 csv 文件。然后打开 csv 文件并保存为 .xlsx excel 格式。这样您就可以保存多达 1,048,576 条记录。如果 yoy 保存为 .xls ,则只能保存 65,000 条以上的记录
  • @JonWay 希望 OP 不再使用xlsxlsx 自 2007 年以来一直存在,支持超过 65,536 行。

标签: sql sql-server tsql reporting


【解决方案1】:
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 中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2012-08-01
    • 2015-09-27
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多