如何通过c#使用SqlBulkCopy插入记录后获取自动增量值

时间:2013-02-18 06:37:27

标签: c# sql stored-procedures sqlbulkcopy

我正在使用 SqlBulkCopy 类来插入批量记录,但我想要新生成的auto-increment值(主键在子表中播放外键),因为借助于这些值,我是玩儿童桌(外键)插入。

请按照以下示例获得清晰的图片,

源表:创建表StagingTable(personName varchar(50)) 插入StaginTable值('Test1') .. .. .. 插入StaginTable值('Test10,000')

目标表:创建表TargetTable(personId int identity(1,1),personName varchar(50)) 插入TargetTable值('Already1') .. .. 插入TargetTable值('Already10')

现在我在TargetTable中有10条记录,其中10条记录是personId(1到10),所以我的问题是从StagingTable向TargetTable&添加10,000条记录。同时将其作为10,010条记录,通过在sql server 2012中使用merge概念排除10个标识值,我只需要10,000个唯一标识值。

创建程序Merge_GetNewIdentityValues 如 MERGE TargetTable AS T. 使用StagingTable AS ON 1!= 1 什么时候不匹配 insert(personName)values(S.StagingTable) output inserted.personId; - 获取标识字段值[新插入的]

如何在并发中处理这个问题? “inserted”关键字是在单独的上下文中播放还是单个上下文用于不同的用户调用相同的存储过程

谢谢, S.Venkatesh

0 个答案:

没有答案