【发布时间】:2021-05-28 11:36:06
【问题描述】:
特殊问题:我有一个包含 140.588 行和 246,313 MB 的表,如下所示:
CREATE TABLE [dbo].[DMA_assessment](
[InstanceName] [varchar](128) NULL,
[DatabaseName] [varchar](128) NULL,
[SizeMB] [varchar](30) NULL,
[ImpactedObjectName] [varchar](128) NULL,
[ImpactDetail] [varchar](max) NULL,
[AssessmentName] [varchar](128) NULL,
[AssessmentNumber] [int] NULL,
[SourceCompatibilityLevel] [varchar](15) NULL,
[TargetCompatibilityLevel] [varchar](15) NULL,
[TargetSQLServerEdition] [varchar](15) NULL,
[Category] [varchar](50) NULL,
[Severity] [varchar](15) NULL,
[ChangeCategory] [varchar](30) NULL,
[Title] [varchar](500) NULL,
[Impact] [varchar](max) NULL,
[Recommendation] [varchar](max) NULL,
[MoreInfo] [varchar](max) NULL,
[ObjectType] [varchar](40) NULL,
[DBOwnerKey] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
点击放大。
此表由DMA Tool 创建,我想使用输出来可视化 Power BI 上的结果。查询这么大的表是不可能的。我需要将其导出为 .csv 或 .xlsx 文件
如果我执行臭名昭著的右键单击并“使用标题复制”,然后将其粘贴到 Excel 文件中,则结果为 141186 行(-1,因为第一行是列名)
(再次点击查看详情)
所以我们来了:
141186 - 140558 = 598
它们来自那 598 行?
我试了多次,结果还是一样。
【问题讨论】:
-
是否会有任何行包含换行符?过滤第一列的空白。一般来说,从 SSMS 复制粘贴并不是一种非常可靠的行传输方式。 SSMS 有一个导入/导出向导,可以将任何查询的结果推送到支持的目的地,包括 CSV 和 Excel(尽管后者可能只是具有 65K 行限制的旧式 Excel,我不确定)。不过,如果您打算在 PBI 中获得结果,我不太明白为什么有必要这样做——您说查询是“不可能的”,但您是自己做的。还不如跳过中间人。
-
您的数据可能有一些换行符或一些混淆复制和粘贴的东西。就个人而言,我建议您不要依赖 SSMS 来复制和粘贴数据,除了最简单的数据。如果要从 SQL Server 中提取数据,请使用不同的方法或工具。
标签: sql-server excel ssms export-to-excel