使用SSMS将CSV导入SQL Azure数据库

6
我有一组大型的CSV文件,每个文件都有许多列,我需要将它们导入到SQL Azure数据库中。通常情况下,我会在SQL Server Management Studio中使用导入向导。然而,在连接到SSMS中的SQL Azure时,向导似乎不是一个选项。这是正确的吗?如果是,那么完成此任务的推荐工具是什么?我正在寻找一种工具,可以从数据中推断出应该是哪些列,并允许我根据需要覆盖数据类型。由于每个文件中有很多列,我想避免手动编写SQL代码来生成表的繁琐工作。

1
将数据导入本地数据库,让SSMS生成创建表脚本,运行该脚本在Azure数据库上,然后执行INSERT操作? - Jim
@Jim,我也遇到了同样的问题。您如何在Azure数据库上运行此表脚本以执行INSERT操作? - Salton
@Jim,能否在不使用额外的数据库的情况下完成? - Hack-R
没错,你不能连接到SQL Azure并使用导入/导出向导。但是我注意到它似乎支持右键菜单上的新“导入平面文件”功能。试试那个。有许多集成方法,但最佳方法取决于您的要求。数据量?不同的列?可重复性? - Nick.McDermaid
2个回答

2
这是我的解决方法:
  • 打开SQL Server Management Studio
  • 连接到Azure
  • 右键单击数据库
  • 转到任务 > 导入数据
  • 选择您的平面文件
  • 上传到Azure SQL并基于此工作流创建一个SSIS包

我有时会在CSV文件中出现错误,但使用Excel文件或检查导入向导中CSV数据列的选项应该足够。

确保为您的用户帐户分配了适当的权限。

他们本可以/应该让这更简单,例如SFTP +插入或类似于Hue的GUI直接导入Azure SQL。


1
在使用Azure表时,没有“导入数据”选项。您可能正在谈论VM上的SQL Server实例。 - Emil

0
当你要将任何数据传输到 SQL 数据库时,数据应该是有结构的。此过程将是将 CSV 转换为表结构,然后直接迁移到 SQL Azure。实际上,你可以在 SSMS 中编写一个存储过程来完成所有操作。
由于 CSV 文件可以是制表符、逗号或任何其他字符分隔的,你可以首先在本地数据库中执行批量插入(如 此处 所述),然后将表同步到 SQL Azure。

1
CSV --> 本地数据库 --> 远程数据库听起来很痛苦。你真的需要一个中间的本地数据库吗?有没有直接连接到Azure的示例? - Hack-R
@Hack-R,这是微软建议的处理所有命令行的方法之外更容易的方式。 - Emil
我不明白为什么需要本地数据库。为什么不直接批量插入到SQL Azure呢? - Nick.McDermaid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接