将包含1024列以上的csv文件导入新的SQL Server表

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

我正在尝试将数据从CSV文件上传到SQL Server,其大小为2GB,列数超过10000。请告诉我如何在SQL Server中加载超过1024列的数据。

我尝试通过导入/导出向导,它抛出以下错误

错误0xc002f210:准备SQL任务1:执行查询“CREATE TABLE [dbo]。[Test]([ID] varchar(50)...”失败,出现以下错误: “CREATE TABLE失败,因为表'Test'中的列'B19037Dm38'超过1024列的最大值。” 可能的故障原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。

sql-server large-files import-csv
2个回答
2
投票

你可以创建一个"wide table",但它有自己的限制和限制。您可能无法使用该向导;如果你想要一个SSIS包定期执行它(这就是向导的内容),你将不得不拔出Visual Studio并构建一个。

我建议你将数据转换为更规范化的形式,每个表有更多的表和更少的列。或者,考虑一下你的数据完全不适合这个模型的可能性,而是使用像Hadoop或其他NoSQL数据库这样的“大数据”平台。


0
投票

也许您需要转置数据并将列作为行并将行作为列引入。

或者像alroc所说,您可能希望将其拆分为多个表并在这些表之间共享密钥。 10个表,1024列,第一个表将具有主键,所有其他表将具有该表的外键。

此外,不知道您的数据是什么样的,因此很难进一步评论。通过SSIS包进行规范化可能是您最好的选择。

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