Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS错误问题(查找和OLE DB命令)_Sql_Sql Server_Sql Server 2005_Ssis - Fatal编程技术网

Sql SSIS错误问题(查找和OLE DB命令)

Sql SSIS错误问题(查找和OLE DB命令),sql,sql-server,sql-server-2005,ssis,Sql,Sql Server,Sql Server 2005,Ssis,我收到一个SSIS包错误,我不知道如何修复。我觉得我需要提供一个背景资料,说明我正试图做些什么来帮助您理解: 我使用的是OLE DB源数据库(SRC DB),它的输入输出到查找(DEST DB)。我正在检查SRC DB中的字段是否存在于DEST DB中。在我的例子中,我检查的字段称为inkexID,它是一个INT NOT NULL,是一个复合主键和一个ID字段 查找正在检查SRC DB中存在的inkexID是否存在于DEST DB中。如果不存在,则将其和其他3个字段插入DEST DB,如果存在,

我收到一个SSIS包错误,我不知道如何修复。我觉得我需要提供一个背景资料,说明我正试图做些什么来帮助您理解:

我使用的是OLE DB源数据库(SRC DB),它的输入输出到查找(DEST DB)。我正在检查SRC DB中的字段是否存在于DEST DB中。在我的例子中,我检查的字段称为inkexID,它是一个INT NOT NULL,是一个复合主键和一个ID字段

查找正在检查SRC DB中存在的inkexID是否存在于DEST DB中。如果不存在,则将其和其他3个字段插入DEST DB,如果存在,则只更新DEST DB中的1个字段

我的问题在于: 在查找时,它会检查两个表上的inkexID,看是否存在匹配项,但组件随后会失败。它似乎没有发送任何错误输出(这是调用初始insert OLEDB命令所需的)。如果我将错误配置设置为重定向行或忽略失败,它将在插入时失败。它给了我一个违反数据库模式的错误,即使我试图插入的字段是12345

我删除了作为主键的字段,并将其设置为允许空值,因此当我再次运行它时,我惊讶地发现它试图将空值插入该字段,即使SRC DB中的值是12345

看起来查找没有任何输出。有谁能帮我解释一下为什么搜索结果会一无所获

非常感谢,
Cian使用SQL Server探查器在服务器上运行跟踪


启动跟踪,然后执行包。探查器跟踪将捕获发送到数据库服务器的所有实际T-SQL命令。然后,您可以将每个命令复制到查询编辑器窗口中,执行并查看结果集,以及查看用于调整的执行计划。

我发现了错误:

我已经设置了SRC DB的inkexID字段,以便从DEST DB中查找inkexID。然而,我不小心将其设置为勾选,并将SRC DB中的列设置为替换DEST DB中的inkexID。我只是简单地解开它,并简单地建立了关系

结果!!!它现在会检查inkexID,如果它存在于DEST DB中,则只会用当前时间更新lastUpdated时间,否则会插入正确的inkexID,当前时间为dateAdded和dateUpdated,状态ID为active