0

我正在使用 SQL Server 导入/导出向导将数据从 Excel 文件导入到表中。我将需要多次执行此精确导入,因此我选择了“保存 SSIS 包”选项。我尝试保存到 SQL Server 并尝试保存到文件系统。无论哪种方式,我都无法弄清楚如何在 SQL Server 中使用该包。我读到我需要使用代理作业任务来执行此操作,但我在 SQL Server 程序中的任何地方都找不到。我还在 SQL Server 中查找了集成服务,但发现了一个似乎没有任何作用的图标。

如何从我的计算机上的某个 .dtsx 到执行导入(最好在查询中)而不必一次又一次地完成整个向导过程?

谢谢

4

1 回答 1

1

导入/导出向导会创建一个名为 .DTSX 的文件。这是你的 SSIS 包。SSIS 包是一个包含大量 XML 的文本文件。将此与以 .EXE/.COM 结尾的内容进行对比,后者是任何 Windows 机器都可以运行的可执行文件。

我们需要一些东西来使用该 .dtsx 文件并执行其中描述的 ETL 操作。您可以选择三个选项:dtexec.exedtexecui.exe和自定义 .NET 代码。dtexecui 只是命令行的图形包装器,所以实际上,您运行包的选择是预构建的命令行实用程序或自定义代码。通过 dtexec 运行一个包可以很简单dtexec.exe /file C:\MyPackage.dtsx

由于您想从 SSMS 的上下文中运行它,因此您需要创建一个 SQL 代理作业或创建一个调用 dtexec 的存储过程。由于您是整个行业的新手,因此该职位将提供最低的进入门槛。

在您的 SSMS 中,连接到一个实例并导航到底部。您应该会看到“SQL Server 代理”展开该节点并右键单击“作业”并选择新建作业。在“步骤”选项卡中,单击“新建...”。将类型更改为“SQL Server Integration Services 包” 在此处输入图像描述 选择您的源(文件系统或 SQL Server) 填写服务器名称或包所在的位置,您应该可以开始使用了。

您需要知道的一件非常重要的事情是 Excel 驱动程序只能在 32 位模式下工作这意味着您将需要使用存在于的 dtexec.exeC:\Program Files (x86)\Microsoft SQL Server\XXX\DTS\Binn\dtexec.exe要从 SQL 代理作业中获取该行为,然后您需要将 /X86 选项添加到命令行,例如

在此处输入图像描述

x86 标志仅适用于 SQL 代理作业调用。从命令行,您必须使用正确版本的 dtexec.exe

于 2014-05-27T15:04:00.487 回答