从SQLServer中批量获取记录的最佳方式是什么场景:我们从SQLServer中获取行到一个C#.Net控制台应用程序,并通过存储过程对从SQLServer中检索到的数据进行操作;执行操作后,使用C#-MongoDB-Driver将新数据存储到MongoDB中。问题:有数十亿行。我的存储过程包含一个查询,如:select*fromtable_name以找出一些批处理逻辑,没有标识列,也没有任何日期列等。信息:截至目前,该应用程序正在获取多达3500-5000条记录并存储到MongoDB,然后抛出如下错误:System.Runtime.InteropServices.SEHException(0x80004005):Anexternalcomponentthrowanexception。问题:任何人都可以建议我一些从SQLServer批量读取/获取的逻辑吗?如果您不能在SQLServer2012中使用OFFSET-FETCH并假设该表具有允许您唯一标识该行的主键或列,则将其称为UniqueKey,那么在2005年您可以像这样使用ROW_NUMBER...SELECTUniqueKey,col2,col3FROM(SELECTUniqueKey,col2,col3,ROW_NUMBER()OVER(ORDERBYUniqueKey)ASRowNumFROMYourTable)subWHEREsub.RowNumBETWEEN@startRowAND@endRow如果你真的没有唯一键或添加一个可能是自然的,那么你可以使用...ROW_NUMBER()OVER(ORDERBY(SELECT0))...来尝试保留记录存储的自然顺序。但是,根据您的数据结构,这不能保证完全按照您的意愿工作。因此,测试迁移更为重要,但我相信您无论如何都会这样做;-)如果使用MSSQL2012,请尝试使用OFFSET-FETCH子句。这是最好的解决方案!EXAMLE:SELECT...ORDERBYorderidOFFSET25ROWSFETCHNEXT25ROWSONLY以上是C#学习教程:从SQLServer批量获取记录的最佳方式是什么?C#学习教程,希望大家多多关注——意思就是这个查询会返回25到50条记录。ORDERBY子句是强制性的,所以如果不想使用顺序,只需这样写:....ORDERBY(SELECTNULL)。....本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
