Visual studio 2013 Visual Studio 2013 SSIS OLE DB目标(通过连接管理器访问)SQL命令问题
各位下午好 我们正在使用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语句形式的代码示例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语句
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数据库