exec sp_msforeachtable 'select ''?'' as ''表名'',(select count(1) from ?) as ''行数'''

解决方案 »

  1.   

    简单但不完美的:select top 1 t.* from(
          select top 5 * from b
    )t
    order by id desc
      

  2.   

    SELECT TOP 5 * FROM Table1
      

  3.   

    --用游标也可以
    --游标访问任意行数的数据
    --测试环境
    declare @menu table (url varchar(200))
    insert into @menu select 'biz\PersonManage\PersonArchiveList.aspx?flag=preview'
    union all select 'biz\PersonManage\PersonArchiveList.aspx?flag=maintenance'
    union all select 'biz\PersonManage\PersonArchiveSearch.aspx'--游标
    declare you scroll cursor
     for 
        select * from @menu
    open you
    --select 游标结果行数=@@cursor_rows
    fetch absolute 1 from you      --指定任意行记录均可!
    close you
    deallocate you
    --结果
    biz\PersonManage\PersonArchiveList.aspx?flag=preview(所影响的行数为 1 行)
      

  4.   

    每个表
    select count(*) from tablename
      

  5.   

    要不這樣試試,組合一個SQL
    declare @sql nvarchar(800)
    declare @n intset @sql=''
    set @n=5
    set @sql='select top ' + convert(char(8), @n) + '  *   from table order by 字段 desc  'set @sql='select top 1  *  from ('+@sql+') a'exec (@sql)
      

  6.   

    use pubs
    godeclare @i int  --想得到第几行
    declare @str_sql nvarchar(200)
    set @i=5        --假设第五行
    set @str_sql = 'select top 1 from authors a where a.au_id not in 
    (select top ' +cast((@i-1) as nvarchar(5))+' au_id from authors b order by au_id)'
    exec sp_executesql @str_sql
    go