Visual studio 2013 Visual Studio 2013 SSIS OLE DB目标(通过连接管理器访问)SQL命令问题

Visual studio 2013 Visual Studio 2013 SSIS OLE DB目标(通过连接管理器访问)SQL命令问题,visual-studio-2013,ssis,ms-access-2010,bids,Visual Studio 2013,Ssis,Ms Access 2010,Bids,各位下午好 我们正在使用Visual Studio 2013,并且正在创建一个SSIS包。我们有一个简单的数据流任务,它从SQL中获取一些数据,并推送到Access数据库。它有三个DFD流程项: 我有一个OLE DB源(通过select语句获取SQL)--->数据转换(将SQL数据类型转换为Access)--->OLE DB目标(Access数据库) 选择SQL并将其转换的步骤工作正常 我们遇到的问题是用于更新Access 2010数据库的SQL命令 我们尝试运行并创建一个简单的UPDATE语句

各位下午好

我们正在使用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 access数据库引擎OLE DB提供程序。此连接测试成功

我们可以在SQL命令行中编写一个SELECT语句,这样就可以提取数据。我们似乎只是在更新和/或创建过程中遇到了问题。反过来,我们无法填充映射。映射显示目标框,但此处不显示任何字段

我们已经在互联网上仔细查看了一下,但我们正在努力寻找解决方案

下面是我们正在尝试使用的update语句形式的代码示例

UPDATE ReferenceFields 
     INNER JOIN Addresses 
     ON ReferenceFields.ID = Addresses.ID
          SET ReferenceFields.Reference2 =CustomerName,
                 ReferenceFields.Reference3 = telephone           
WHERE Addresses.UPRN = 12345678910 
如果我解析查询,它将成功,但当我选择映射时,将显示一条警告

数据流任务[OLE DB Destination[136]]处出错:无列 SQL命令返回了信息


过了一段时间,我自己设法回答了这个问题

我已经为每个需要更新的字段添加了唯一的参数,并使用@char来设置

UPDATE ReferenceFields 
     INNER JOIN Addresses 
     ON ReferenceFields.ID = Addresses.ID
          SET ReferenceFields.Reference2 = @CustomerName,
              ReferenceFields.Reference3 = @telephone
WHERE UPRN = @UPRN
这将贯穿代码并更新MS Access数据库