在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 工具包括许多用于处理动态场景的支持。查看其数据流任务增强版的视频,了解一些想法。