declare @Tb varchar(50)
declare @Sql Nvarchar(250)  --改定义
declare @Buff varchar(50)
select @Tb='SchoolInfo'
select @Sql='select top 1 @Buff=SchoolName from '+ @Tb
exec sp_executesql @Sql,N'@buff varchar(50) out ',@buff out  --改查询方式

解决方案 »

  1.   

    declare @Tb varchar(50)
    declare @Sql varchar(150)
    declare @Buff varchar(50)
    select @Tb='SchoolInfo'select @Sql='select top 1 '+@Buff+'=SchoolName from '+ @Tbexec (@Sql)
      

  2.   

    declare @Tb varchar(50)
    declare @Sql varchar(150)
    declare @Buff varchar(50)
    select @Tb='SchoolInfo'
    select @Sql='select top 1 @Buff=SchoolName from '+ @Tb
    exec sp_executesql @sql,N'@Buff Varchar(50) output',@Buff output
      

  3.   

    declare @Tb varchar(50)
    declare @Sql nvarchar(150)
    declare @Buff varchar(50)
    select @Tb = 'pubs..authors'
    select @Sql = 'select top 1 @Buff=au_lname from '+ @Tb
    exec sp_executesql @Sql,N'@Buff varchar(50) output',@Buff output
    select @Buff