使用来自C#的SQL Server2K8,我尝试对要优化的父/子表进行批量插入/更新记录。
插入/更新将自动生成一个键,我希望通过输出等将其提取出来,然后在域模型中重新分配。对于批量插入,我需要跟踪新生成的ID属于批量列表中的哪个域对象。
这个示例很接近我所需要的,但是我想知道是否有一种方法可以不向表中添加额外的列(SequenceNumber),同时仍然获得相同的结果:http://illdata.com/blog/2010/01/13/sql-server-batch-inserts-of-parentchild-data-with-ibatis/
即。我们是否可以依赖于从输出生成的插入到临时表中的顺序,或者传递一个在数据模型上设置的引用GUID,并临时传递给SQL以供参考?
发布于 2011-10-16 00:28:08
在SQL Server2008中,可以使用merge和output来获得生成的键和临时表中使用的键之间的映射。
看一下这个问题。Using merge..output to get mapping between source.id and target.id
发布于 2011-10-15 23:05:28
除非我误解了..。
代理键(标识或NEWID等)不是实际的对象标识符。这是一个实现细节,没有内在含义。
您必须有另一个标识符(名称、ISBN、序列号、交易代码/日期等),即真正的(自然)密钥。
OUTPUT子句可以返回代理键和自然键。然后,您可以使用它映射回
https://stackoverflow.com/questions/7778548
复制相似问题