想请教一个问题!
对于一张表里的数据,执行多次select top 。
比如执行了两次select top 1000 * from Test ,
我的问题是每次查询到结果会一样么?
对于数据量少的是一样的,但是数据量多的话好像就不太一样
嗯、是的、因为数据的排列数据量大时会出现细微的差别、具体数据库的原因不知道、也偶尔是随机的、
一般实际用top时都有where条件和Order by 限制,Order by限制的话数据量多多次查询不会有差别!
嗯、用了where 条件,做的是把一批数据对半修改,所以就是用
【1】update A .... where Name in (select top count/2 Name from ....)....
【2】update A .... where Name not in (select top count/2 Name from ...)...
当数据量多的时候,会有一批数据没有被修改,可能就是这两次top的时候,查出来的数据不一样。
只有这样结果应该是不会变的 不过我也不敢确定
加个where 排序 条件就会一样
因为没有经过排序的表的记录在数据库中无所谓顺序,如何排序也应该是随机的,所以你每次用top取前几条也不一样
不一定一样,因为你没有Order by来排序。只有当你用Order by排序之后,每次取出的结果才一样,否则是一个不可预测的情况,可能一样,也可能不一样。