SSI 在 SQL 和 Access 数据库之间移动数据



在SQL Server Data Tools 2015中,我想将数据从SQL Server 2012数据库移动到新的访问数据库(2005)中,并且需要创建访问表作为该过程的一部分。 这可以在一个控制流下的执行SQL进程中完成吗? 这将是循环的一部分,用于运行需要动态创建并加载到空访问数据库中的表列表。

我已经创建了一个连接管理器,该管理器位于访问数据库的连接字段中,并将代码放入Execute SQL Task组件的常规选项卡下的 SQL 语句字段中。
这两个数据库都在我的本地计算机上。

"SELECT  a.* into providers from OPENROWSET('SQLNCLI', 'Server=localhost;Trusted_Connection=yes;',  'SELECT * FROM newResults.dbo.providers') as a"

我收到以下错误:

SSIS 包"C:\Users\chris\source\repos\Integration Services Project5\Integration Services Project5\Package1.dtsx"正在启动。错误: 0xC002F210执行 SQL 任务 2,执行 SQL 任务:执行 查询 "SELECT a.* into provider from OPENQUERYSET('SQLN..."失败 出现以下错误:"FROM 子句中的语法错误。可能 失败原因:查询出现问题,未设置"结果集"属性 正确、参数设置不正确或未建立连接 正确。任务失败:执行 SQL 任务 2 SSIS 包 "C:\Users\chris\source\repos\Integration Services Project5\Integration 服务项目5\包1.dtsx"已完成:成功。

执行 SQL任务中包含的 SQL 在目标的上下文中执行。SELECT INTO FROM OPENQUERYSET 语句正在传递给 Access。Access 没有 OPENQUERYSET 函数,即使有,您的源也是 SQL Server,除非您在 Access 中与 SQL Server 建立了连接,否则 Access 不知道该函数。将 SQL 语句复制到 Access 中并尝试执行它,您将看到相同或类似的错误。这就是执行 SQL 任务正在执行的操作。

动态数据是 SSIS 中更具挑战性的问题之一。COZYROC 工具包括许多用于处理动态场景的支持。查看其数据流任务增强版的视频,了解一些想法。

最新更新