table 的更新策略,在 Informatica 中使用序列生成的数字作为主键
Update strategy for table with sequence generated number as primary key in Informatica
我有一个映射,它从多个 sql 服务器源 table 获取数据,并为每一行分配一个序列生成的编号作为 ID。在目标 table 中,ID 字段设置为主键。
每次我 运行 此映射时,它都会创建新行并为目标中预先存在的记录分配新 ID。下面是一个例子:
1st run:
ID SourceID Name State
1 123 ABC NY
2 456 DEF PA
2nd run:
ID SourceID Name State
1 123 ABC NY
2 456 DEF PA
3 123 ABC NY
4 456 DEF PA
所需的输出必须:
1) 如果源中的记录被更新,则创建一个新行并分配一个新 ID。
2) 如果在源中插入了新行,则创建一个新行并分配一个新 ID。
如何在 Informatica 中获取?
提前致谢!
给 ID
字段一个 IDENTITY PROPERTY
...
Create Table SomeTable (ID int identity(1,1),
SourceID int,
[Name] varchar(64),
[State] varchar(64))
当您插入其中时...您不会为 ID 插入任何内容。例如...
insert into SomeTable
select
SourceID,
[Name],
[State]
from
someOtherTable
ID 字段将从 1 开始自动递增,每次插入一行时递增 1。关于每次更新或插入另一行时添加行的问题 table,这就是 TRIGGERS 的目的。
我会拿一张传单,假设这里的实际问题是 'How can I tell if the incoming record is neither insert nor update so that I can ignore it'。你可以
a) 在您的源数据中有一些日期字段来标识记录更新的时间,然后将您的源限定符限制为仅选取在上次此映射 运行 之后最后更新的记录。 .缺点是如果你不感兴趣的字段被更新那么你会处理很多冗余记录
b) 更好的建议!!配置一个动态查找,它应该存储与 SourceID 匹配的记录的最新状态。然后可以使用newlookuprow指标端口判断记录是insert、update还是no change,在后续的t运行sformation
中过滤掉no change记录
我有一个映射,它从多个 sql 服务器源 table 获取数据,并为每一行分配一个序列生成的编号作为 ID。在目标 table 中,ID 字段设置为主键。
每次我 运行 此映射时,它都会创建新行并为目标中预先存在的记录分配新 ID。下面是一个例子:
1st run:
ID SourceID Name State
1 123 ABC NY
2 456 DEF PA
2nd run:
ID SourceID Name State
1 123 ABC NY
2 456 DEF PA
3 123 ABC NY
4 456 DEF PA
所需的输出必须: 1) 如果源中的记录被更新,则创建一个新行并分配一个新 ID。 2) 如果在源中插入了新行,则创建一个新行并分配一个新 ID。
如何在 Informatica 中获取?
提前致谢!
给 ID
字段一个 IDENTITY PROPERTY
...
Create Table SomeTable (ID int identity(1,1),
SourceID int,
[Name] varchar(64),
[State] varchar(64))
当您插入其中时...您不会为 ID 插入任何内容。例如...
insert into SomeTable
select
SourceID,
[Name],
[State]
from
someOtherTable
ID 字段将从 1 开始自动递增,每次插入一行时递增 1。关于每次更新或插入另一行时添加行的问题 table,这就是 TRIGGERS 的目的。
我会拿一张传单,假设这里的实际问题是 'How can I tell if the incoming record is neither insert nor update so that I can ignore it'。你可以
a) 在您的源数据中有一些日期字段来标识记录更新的时间,然后将您的源限定符限制为仅选取在上次此映射 运行 之后最后更新的记录。 .缺点是如果你不感兴趣的字段被更新那么你会处理很多冗余记录
b) 更好的建议!!配置一个动态查找,它应该存储与 SourceID 匹配的记录的最新状态。然后可以使用newlookuprow指标端口判断记录是insert、update还是no change,在后续的t运行sformation
中过滤掉no change记录