好的,根据Microsoft 文档,SSIS 中的 OLE DB 命令转换可以做到这一点
OLE DB 命令转换为数据流中的每一行运行一条 SQL 语句。例如,您可以运行在数据库表中插入、更新或删除行的 SQL 语句。
所以我想写一些 SQL 来在我的一个表中插入行,只有当记录不存在时
所以我尝试了这个,但控件一直抱怨不好的 sintaxys
IF NOT EXISTS
(SELECT * FROM M_Employee_Login WHERE
Column1=?
AND Column2=?
AND Column3=?)
INSERT INTO [M_Employee_Login]
([Column1]
,[Column2]
,[Column3])
VALUES
(?,?,?)
但是,如果我删除 IF NOT EXISTS 部分(仅保留插入),控件说可能代码是好的,我做错了什么。
有更简单的解决方案吗?
更新:顺便说一句,我的来源是平面文件(csv 文件)
自回答以来更新:只是为了让人们知道。我最终使用了OLE DB Command Transformation
我计划的原因比OLE DB Destination
这个操作更好。不同之处在于我确实使用了Lookup Component
过滤所有已经存在的记录(如建议的答案)。然后使用OLE DB Command Transformation
我Insert SQL
在问题中遇到的,它按预期工作。希望能帮助到你