gpt4 book ai didi

sql - 如何解决 SSIS 包中 OLE DB 目标中的非空约束?

转载 作者:行者123 更新时间:2023-12-03 03:01:05 25 4
gpt4 key购买 nike

我是 SSIS 包的新手。我想将数据从源数据库传输到具有不同表结构的目标数据库。我的数据流是从 OLE DB 源OLE DB 目标 enter image description here

我已将 OLE DB 源命名为患者源,并且在 OLE DB 源编辑器中,在数据访问模式下与源数据库建立连接strong>我选择了SQL命令和SQL命令文本如下

从 pat_Patients 中选择 ppFName、ppLName、ppPersonalNbr、ppEmailOne,并且我已经预览了数据,它显示75 行

我想将这四个字段从该数据库传输到名为 Person 的源数据库表及其表结构如上。 enter image description here

连接是在 OLE DB 目标编辑器中建立的,

enter image description here和映射如下,

enter image description here

当我运行该项目时,我的数据流如下,

enter image description here我收到了三个错误,其中第一个错误状态为

[OLE DB 目标 [2]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“该语句已终止。”。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“无法将 NULL 值插入表“test_9.dbo.Person”的“TenantId”列;列不允许为空值。INSERT 失败。”。

我知道 TenantId 和 PersonId 均不为 null,并且分别为“外键”和“主键身份”。

但我想输入 TenantId 作为 '1' 和 PersonId 作为身份,即所有 75 行自动递增来自患者来源。我想将 AddedBy 输入为“1”,并将 AddedDateTime 输入到系统当前日期时间。

我不知道如何实现上述要求,请大家帮助我。

提前致谢。

最佳答案

TenantId为空时,您可以使用派生转换分配1

ISNULL([TenantId]) ? 1 : [TenantId] 

类似地,对于 AddedBy 列添加表达式为 1,对于 AddedDateTime 列添加表达式为 GETDATE()

关于sql - 如何解决 SSIS 包中 OLE DB 目标中的非空约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com