select top 10 * from 表 order by newid()  通过这条语句随机读取10调数据但怎么有时候读取不到数据?

解决方案 »

  1.   

    newid 每一次都产生新的GUID吧? 等待其他人回答看看 关注下
      

  2.   

    Sql server: select top 10 * from 表 order by newid() Access: SELECT top 10 * FROM 表 ORDER BY Rnd(id) 
    按照道理楼主你的是可以的啊,我记得sql server中有个rand什么的函数可以直接拿来用。
      

  3.   

    数据量不大, 不需要整天 导入/导出 的, 可以使用普通的 IDENTITY 就可以了。
    如果需要导入/导出, 或者跨数据库来回折腾的,那么使用 Uniqueidentifier   的 newid() 来处理。原因在于,你要导出数据,是没太大问题。
    问题就在于,从别的系统导出的文本文件中,提取数据,导入数据库的话。
    如果你的表的字段是  IDENTITY , 那么处理起来,就稍微有点麻烦,因为需要在导入的时候,增加额外的参数,让数据库不使用 IDENTITY,而使用文件中的 编号。
    假如文件还是从别的系统里面导出的,那么很可能与你的数据冲突。最后就更难处理了
      

  4.   

      newid() 就和随机一样了, 怎么会取不到数据,
      

  5.   

    可能是你的数据Guid字段没有设默认值(newid())