declare @table_name  char(20)
declare @countrow   int
select @table_name = 'authors'declare @sql   nvarchar(1000)set @sql = N'select @countrow=count(*) from ' + @table_name
execute  sp_executesql  @sql ,N'@countrow int  output' , @countrow output--详见SQL2000联机手册 sp_executesql 用法

解决方案 »

  1.   

    1.
    use pubs
    go
    declare @table_name
    declare @countrow
    select @table_name=authors
    exec('select @countrow=count(*) from '@table_name)
    go可以改为
    use pubs
    go
    declare @countrow Int    --加上类型
    declare @table_name Nvarchar(20)  --加上类型及长度
    select @table_name='T1'    --表名要加上单引号
    exec('select * from '+@table_name)
    Set @countrow=@@Rowcount
    go
      

  2.   


    2.
    select count(*) from table  时可以等到一个结果
    你这样查询时,没有将结果放在那个临时表中3.好像没有哪个系统表存有表的条数。想得到表的条数,直接select count(*) As Count from table 就可以看到啊4. 看看SQL的联机帮助。
    这个网页你也可以看看。
    http://www.ithome-cn.net/technology/data/data027.htm
      

  3.   

    sysaltfiles    主数据库               保存数据库的文件
    syscharsets    主数据库               字符集与排序顺序
    sysconfigures  主数据库               配置选项
    syscurconfigs  主数据库               当前配置选项
    sysdatabases   主数据库               服务器中的数据库
    syslanguages   主数据库               语言
    syslogins      主数据库               登陆帐号信息
    sysoledbusers  主数据库               链接服务器登陆信息
    sysprocesses   主数据库               进程
    sysremotelogins主数据库               远程登录帐号syscolumns     每个数据库             列
    sysconstrains  每个数据库             限制
    sysfilegroups  每个数据库             文件组
    sysfiles       每个数据库             文件
    sysforeignkeys 每个数据库             外部关键字
    sysindexs      每个数据库             索引
    sysmenbers     每个数据库             角色成员
    sysobjects     每个数据库             所有数据库对象
    syspermissions 每个数据库             权限
    systypes       每个数据库             用户定义数据类型
    sysusers       每个数据库             用户