我正在使用SQL Server导入/导出向导将Excel文件中的数据导入表格。我需要多次执行此导入,因此我选择了“保存SSIS包”选项。 我尝试保存到SQL Server,我尝试保存到文件系统。 无论哪种方式,我都无法弄清楚如何在SQL Server中使用该包。我读到我需要使用代理作业任务来执行此操作,但我无法在SQL Server程序中的任何位置找到它。 我还在SQL Server中寻找集成服务,我发现了一个似乎没有做任何事情的图标。
如何在我的计算机上某处使用.dtsx执行导入(最好是在查询中),而不必一次又一次地完成整个向导过程?
谢谢
答案 0 :(得分:1)
Import/Export Wizard创建一个名为.DTSX的文件。这是您的SSIS包。 SSIS包是一个填充了大量XML的文本文件。将此与以.EXE / .COM结尾的内容进行对比,这是任何Windows机器都可以运行的可执行文件。
我们需要使用某个.dtsx文件并执行其中描述的ETL操作。您可以选择三个选项:dtexec.exe,dtexecui.exe,和自定义.NET代码。 dtexecui只是命令行的图形包装器,所以实际上,运行包的选择是预构建的命令行实用程序或自定义代码。通过dtexec运行包可以像dtexec.exe /file C:\MyPackage.dtsx
由于您希望从SSMS的上下文运行它,因此您需要创建SQL代理作业或创建调用dtexec的存储过程。由于您是整个企业的新手,因此工作将提供最低的准入门槛。
在您的SSMS中,连接到实例并导航到底部。你应该看到" SQL Server Agent"展开该节点并右键单击" Jobs"并选择新工作。在Steps选项卡中,单击New ....将Type更改为" SQL Server Integration Services Package" 选择您的源(文件系统或SQL Server)填写服务器名称或程序包所在的位置,您应该好好去。
一个非常重要的事情,你需要知道的是Excel驱动程序只能在32位模式下工作。这意味着您将需要使用C:\Program Files (x86)\Microsoft SQL Server\XXX\DTS\Binn\dtexec.exe
中存在的dtexec.exe要从SQL代理作业中获取该行为,那么您需要将/ X86选项添加到命令行,如
x86标志仅适用于SQL代理作业调用。从命令行,您必须使用正确版本的dtexec.exe