首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量插入返回标识和对象引用/序列

批量插入返回标识和对象引用/序列
EN

Stack Overflow用户
提问于 2011-10-15 22:52:47
回答 2查看 1.5K关注 0票数 2

使用来自C#的SQL Server2K8,我尝试对要优化的父/子表进行批量插入/更新记录。

插入/更新将自动生成一个键,我希望通过输出等将其提取出来,然后在域模型中重新分配。对于批量插入,我需要跟踪新生成的ID属于批量列表中的哪个域对象。

这个示例很接近我所需要的,但是我想知道是否有一种方法可以不向表中添加额外的列(SequenceNumber),同时仍然获得相同的结果:http://illdata.com/blog/2010/01/13/sql-server-batch-inserts-of-parentchild-data-with-ibatis/

即。我们是否可以依赖于从输出生成的插入到临时表中的顺序,或者传递一个在数据模型上设置的引用GUID,并临时传递给SQL以供参考?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-16 00:28:08

在SQL Server2008中,可以使用mergeoutput来获得生成的键和临时表中使用的键之间的映射。

看一下这个问题。Using merge..output to get mapping between source.id and target.id

票数 1
EN

Stack Overflow用户

发布于 2011-10-15 23:05:28

除非我误解了..。

代理键(标识或NEWID等)不是实际的对象标识符。这是一个实现细节,没有内在含义。

您必须有另一个标识符(名称、ISBN、序列号、交易代码/日期等),即真正的(自然)密钥。

OUTPUT子句可以返回代理键和自然键。然后,您可以使用它映射回

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7778548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档