2009-09-22 45 views
0

我与我的老板在一起,我们遇到了SSIS项目的问题。 是DataModel的很烂,没有一个自动的主键,所以我们必须从客户使用SSIS生成主键时出现问题

的问题做了经典的和讨厌

选择MAX(ID)+ 1是的那一刻起,我的脚本任务生成PK的时刻,我插入那里有10行已成为我的脚本任务,所以我得到10次相同的ID和应用程序崩溃大时间!

怎么可能在SSIS?

回答

0

我得到了一个简单的答案我正确的把我的记录,我想插入一个DataSet没有任何PK ID和外部我的数据流我做了一个foreach循环,得到foreach记录一个新的PK ID并插入一个接一个。

完成!

0

创建一个TempWork表,具有与最终目标表相同的精确结构,除了使PK成为IDENTITY(n,1),其中“n”是基于最终目标表的PK的下一个值。使用SSIS插入到此TempWork表中,并且将为您生成ID。当它全部完成,这样做:

INSERT INTO FinalTable (PK,col1, col2,...) SELECT PK, col1, col2... from TempWork 

然后DROP TABLE TempWork