select @sqlstr='select '+@number+'=count(*) from '+@tablename

解决方案 »

  1.   

    declare @number int,
            @tablename varchar(50),----接受从外界传入的表名
            @sqlstr varchar(500)
    select @tablename='Authors'----此处暂用 authors 代替
    select @sqlstr='select '+@number+'=count(*) from '+@tablename
    exec(@sqlstr)
    print @number---------
    服务器: 消息 245,级别 16,状态 1,行 5
    将 varchar 值 'select ' 转换为数据类型为 int 的列时发生语法错误。
      

  2.   

    use pubs
    declare @number int,
            @tablename varchar(50),----接受从外界传入的表名
            @sqlstr nvarchar(500)
    select @tablename='Authors'----此处暂用 authors 代替select @sqlstr='select @number=count(*) from '+@tablename
    exec sp_executesql @sqlstr,N'@number int output',@number output
    print @number