我正在使用SqlBulkCopy类插入批量记录,但我想要新生成的auto-increment
值(主键在子表中播放外键),因为在这些值的帮助下,我将使用子表(外键)进行插入。
请按照以下示例获得清晰的图片,
源表:创建表 StagingTable (personName varchar(50)) 插入 StaginTable values('Test1') .. .. .. insert into StaginTable values('Test10,000')
目标表:创建表 TargetTable (personId int identity(1,1), personName varchar(50)) insert into TargetTable values('Already1') .. .. insert into TargetTable values('Already10')
现在我在 TargetTable 中有 10 条记录,其中 10 条记录带有 personId(1 到 10),所以我的问题是将 10,000 条记录从 StagingTable 插入到 TargetTable 并使其成为 10,010 条记录,同时通过排除 10 个标识值,我只需要 10,000 个唯一标识值借助 sql server 2012 中的合并概念。
创建过程 Merge_GetNewIdentityValues As MERGE TargetTable AS T USING StagingTable AS S ON 1 != 1 当不匹配然后插入(personName)值(S.StagingTable)输出inserted.personId;-- 获取标识字段值【新插入的】
如何并发处理?“插入”关键字是在单独的上下文中播放,还是在用于不同用户调用相同存储过程的单个上下文中播放
谢谢, S.Venkatesh