gpt4 book ai didi

sql - 如果存在于文件夹中,则将多个表从 CSV 导入 SQL

转载 作者:行者123 更新时间:2023-12-04 23:45:38 25 4
gpt4 key购买 nike

在这个问题的扩展中:Import Multiple CSV Files to SQL Server from a Folder

如问题所述,我想将多个表从 CSV 文件从一个文件夹导入到 SQL Server 中。但就我而言,问题是我最多可以有 17 个不同的表,它们都有不同的布局。例如,有些有 2 列,而有些则有 10 列。

是否可以创建一个脚本,根据 CSV 文件的名称考虑不同的表设置,如果该表实际存在于文件夹中,是否可以正确导入它?

好处是 CSV 文件永远不会更改名称/布局。但并非每个项目都使用所有 17 个表。

我想要粗略的代码以及适当的注释,以便我理解它。

请有人帮我解决这个问题。非常感谢:)

最佳答案

这是使用 SQL Server Integration Services (SSIS) 的完美情况,前提是您在工作环境中可以使用它。 (我会假设你这样做,或者可以安装它。)

SSIS 本身就是一个巨大的平台,因此我无法在这里解释有关如何使用它的所有信息。开始了解它的一些好地方是:

还有很多书籍和其他网站可供使用。

广义上讲,您首先需要创建一个SSIS“包”,它是一个扩展名为.dtsx 的文件。您可以使用 Microsoft Visual Studio 或 Microsoft SQL Server Data Tools 在本地 PC 上创建它。它有一个相当用户友好的图形界面。

在此包中,您需要为 17 个可能的文件中的每一个配置一个数据源,然后将它们“映射”到目标 SQL 数据库中的相应表。

如果您对其进行了适当的设置,那么即使某些文件实际上不存在,该程序包也会正常工作 - 它会加载任何存在的文件。 这就是为什么 SSIS 在您的用例中是一个不错的选择的症结所在。

创建包后,可以通过多种方式使用/部署它。根据您的意见和问题,我认为最适合您的方法可能是:

  1. 将其上传到 SQL Server 上的 SSIS 包存储(使用 SSMS 对象资源管理器,连接到 SSIS 实例而不是 SQL Server 实例)。为此,您需要在 SQL Server 平台上安装 SSIS 组件。
  2. 通过 SQL 代理创建一个 SQL 作业,其中一个步骤会触发 SSIS 包。您可能还需要该步骤之前或之后的步骤,以运行 T-SQL 代码来准备要将数据加载到的 SQL 表,或者在加载后对数据执行操作(例如清理和验证数据)。
  3. 不是运行 SQL 脚本来关闭整个过程,而是触发作业运行,手动(再次通过 SQL 代理)或使用内置的调度工具(例如,它可以在每晚 6 点运行) .

包也可以保存为一种独立的可执行文件,在任何文件夹位置,并通过双击从 Windows 中运行(无需再次打开 Visual Studio/SSDT)。

关于sql - 如果存在于文件夹中,则将多个表从 CSV 导入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com