1

我的问题与下面的问题非常相似,但在 informatica 环境中:

检索插入行的索引

以下是该问题的简短摘要:我试图弄清楚如何将行插入到表中,然后找出 auto_incremented id 列的值设置为,以便我可以将其他数据插入到另一个表中. 我们的目标是 SQL Server 2008。我们有一个必须由 informatica ETL 填充的表,并且应用程序也在使用同一个表 - 因此,我们不能使用 informatica 序列生成器。

过去,当我使用 Oracle 数据库时,Informatica 中提供了一个 Oracle 序列生成器转换 - 但对于 SQL 服务器,我不确定。

请问有什么解决办法吗?

4

3 回答 3

1

如果要填充的值是纯序列值并且没有其他含义,则可以同时使用两个序列生成器。使用 Informatica 序列生成器生成从 -1 到负无穷大的值。同时,SQLserver 自动增量字段将包含从 1 到无穷大的值。永远不会发生碰撞。

于 2012-04-08T16:14:31.147 回答
0

首先填充第一个表(具有自动递增 id 的表)。完成后,运行另一个映射,在其中查找该表,通过表中的其他可识别键值获取 ID 值,然后根据需要继续填充其他表(使用检索到的 ID)。

于 2011-04-09T05:21:16.563 回答
0

您可以使用启用了“重置”标志的序列生成器,以便每个会话运行都从 1 开始,然后使用查找来缓存目标表中的当前最大序列值。然后您可以通过将 NEXTVAL 添加到最大值来预测插入记录时 SQL Server 将生成的序列号。

于 2011-04-08T10:54:07.130 回答