我与我的老板在一起,我们遇到了SSIS项目的问题。 是DataModel的很烂,没有一个自动的主键,所以我们必须从客户使用SSIS生成主键时出现问题
的问题做了经典的和讨厌
选择MAX(ID)+ 1是的那一刻起,我的脚本任务生成PK的时刻,我插入那里有10行已成为我的脚本任务,所以我得到10次相同的ID和应用程序崩溃大时间!
怎么可能在SSIS?
我与我的老板在一起,我们遇到了SSIS项目的问题。 是DataModel的很烂,没有一个自动的主键,所以我们必须从客户使用SSIS生成主键时出现问题
的问题做了经典的和讨厌
选择MAX(ID)+ 1是的那一刻起,我的脚本任务生成PK的时刻,我插入那里有10行已成为我的脚本任务,所以我得到10次相同的ID和应用程序崩溃大时间!
怎么可能在SSIS?
我得到了一个简单的答案我正确的把我的记录,我想插入一个DataSet没有任何PK ID和外部我的数据流我做了一个foreach循环,得到foreach记录一个新的PK ID并插入一个接一个。
完成!
创建一个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