【发布时间】:2016-01-18 14:38:24
【问题描述】:
下午的人们,
我们正在使用 Visual Studio 2013 并且正在创建一个 SSIS 包。我们有一个简单的数据流任务,它基本上从 SQL 中获取一些数据并推送到 Access 数据库。它具有三个 DFD 流项:
我有一个 OLE DB 源(通过 select 语句获取 SQL)--> 数据转换(将 SQL 数据类型转换为 Access)--> OLE DB 目标(Access 数据库)
选择 SQL 并转换它的步骤工作正常。
我们遇到的问题是我们用来更新 Access 2010 数据库的 SQL 命令。
我们尝试运行并创建一个简单的 UPDATE 语句来使用硬编码数据更新几个字段,但这不会更新。我们还尝试创建一个存储过程,然后在 OLE 目标编辑器的 SQL 命令行中执行它。
我们可以从网上的帖子中看到我们可以在access 2010中创建一个程序并使用它。我们还使用本机 OLE DB\Microsoft Office 12.0 访问数据库引擎 OLE DB 提供程序。此连接测试成功。
我们可以在 SQL 命令行中编写一个 SELECT 语句,这确实会拉回数据。我们似乎只是对 UPDATE 和/或 Create Procedure 有问题。反过来,我们无法填充映射。映射显示目标框,但此处不显示任何字段。
我们在互联网上进行了很好的查看,但我们正在努力寻找解决方案。
以下是我们尝试使用的更新语句形式的代码示例。
UPDATE ReferenceFields
INNER JOIN Addresses
ON ReferenceFields.ID = Addresses.ID
SET ReferenceFields.Reference2 =CustomerName,
ReferenceFields.Reference3 = telephone
WHERE Addresses.UPRN = 12345678910
如果我解析查询它是成功的,但是当我选择映射时会显示一个警告......
数据流任务 [OLE DB 目标 [136]] 出错:无列 信息由 SQL 命令返回
https://msdn.microsoft.com/EN-US/library/office/ff845861.aspx
https://msdn.microsoft.com/en-us/library/ms141044.aspx
SSIS OLEDB destination with SQL command (Insert if not exists)
【问题讨论】:
标签: visual-studio-2013 ssis ms-access-2010 bids