取n到m条记录的语句取n到m条记录的语句1.
select top m * from tablename where id not in (select top n * from tablename)2.
select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入
set rowcount n
select * from 表变量 order by columnname desc3.
select top n * from 
(select top m * from tablename order by columnname) a
order by columnname desc
4.如果tablename里没有其他identity列,那么:
select identity(int) id0,* into #temp from tablename取n到m条的语句为:
select * from #temp where id0 >=n and id0 <= m如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
exec sp_dboption 你的DB名字,'select into/bulkcopy',true
5.如果表里有identity属性,那么简单:
select * from tablename where identitycol between n and m ------------------------------------------------------
还有一个变态的要求就是要在ACCESS数据库下实现,嘿嘿。我不知道上诉语句在access中能否实现.

解决方案 »

  1.   

    --要极其优化的话 id上必须有聚集索引
    set rowcount 10 
    declare @xID int
    select @xID=500001
    select * from  [table] where ID > @xID
    set rowcount 0
    --用top 效率是不行地.........
      

  2.   

    use tempdb
    go
    select top 10000000 identity(int,1,1)  test into test from master..syscolumns x, master..syscolumns x2
    goalter table test add primary key(test)
    go
    set rowcount 5000000 
    declare @xID intselect @xID = test from  test
    print @xID
    set rowcount 10 select * from  test where test > @xID
    set rowcount 0