如何从 FLAT FILE Source 更新 Table 中的所有列

How to UPDATE all columns in a Table from FLAT FILE Source

我的数据库 Table 不更新来自 OLE DB 目标的列,我需要更新我从平面文件源 (.csv) 获得的 OLE DB 目标 table 中的所有列.

里面的 .csv 文件数据每天都在变化,所以当我执行 DATA FLOW 时,FLAT FILE Source 更新很好,但是 OLE DB Destination 中的数据没有更新,所以 DB Table 永远不会更新数据。

我应该配置 OLE DB 命令吗?

这就是我所拥有的以及我的设置方式。

  1. 我正在使用 SQL Server 2012 STD

  2. 我在 Visual Studio 中有一个 SSIS 项目。

  3. 数据流已设置。

  4. 在数据流内部,我有连接到 OLE DB 目标的平面文件源。 (工作正常)

  5. 所有连接管理器都已设置并正常工作。

  6. Tables 已在 Management Studio 中创建。

如果我需要使用 OLE DB 命令,应该是这样的:

UPDATE table
SET column1=?, column2=?, column3=?
WHERE column1=?, column2=?, column3=?

这是我需要使用的实际查询,可以吗?


set 
candidateName=?, 
candidateFirstname=?,
candidateLogin=?,
candidateEmail=?, 
candidateRefNumber=?, 
candidateGuid=?,
candidateEntityName=?, 
'M-Sure Client Engagement Specialist'=?,
'Area Sales Manager'=?, 
Region=?, 
'Group Name'=?, 
'FSB License Holder'=?,
'Agent Name'=?, 
trainingId=?,
trainingTitle=?,
trainingGuid=?, 
sessionId=?,
sessionTitle=?,
sessionGuid=?,
sessionStartDate=?, 
sessionEndDate=?,
contentGuid=?, 
contentRefNumber=?,
contentTitle=?,
firstLaunchDate=?,
completionTime=?, 
score=?, 
timeGlobal=?, 
progression=?, 
status=?

WHERE

candidateName=?, 
candidateFirstname=?,
candidateLogin=?,
candidateEmail=?, 
candidateRefNumber=?, 
candidateGuid=?,
candidateEntityName=?, 
'M-Sure Client Engagement Specialist'=?,
'Area Sales Manager'=?, 
Region=?, 
'Group Name'=?, 
'FSB License Holder'=?,
'Agent Name'=?, 
trainingId=?,
trainingTitle=?,
trainingGuid=?, 
sessionId=?,
sessionTitle=?,
sessionGuid=?,
sessionStartDate=?, 
sessionEndDate=?,
contentGuid=?, 
contentRefNumber=?,
contentTitle=?,
firstLaunchDate=?,
completionTime=?, 
score=?, 
timeGlobal=?, 
progression=?, 
status=?```

是的,为了更新 table 中的现有行,您必须使用 OLEDB 命令,而不是 OLEDB 目标,是的,您建议的方法是正确的。