--动态SQL
declare @sql nvarchar(100),@table varchar(10),@num nvarchar(10)
set @table='table1'
set @sql='select @n=num from '+@table+' where tb_id=1'
exec sp_executesql @sql,N'@n nvarchar(10) output',@num output
select @num

解决方案 »

  1.   

    create table tt(num int)
    insert into tt select 1
    insert into tt select 2
    insert into tt select 3declare @num int,@tbname varchar(50),@sql nvarchar(4000)
    set @tbname='tt'
    set @sql='select @num=sum(num) from '+@tbname  
    exec sp_executesql @sql,N'@num int output',@num output  
    select @num  6
      

  2.   

    declare @table sysname
    set @table='AY_table1'declare @Num nvarchar(100)declare @sql nvarchar(1000)
    set @sql='select @Num=Num from '+@table+' where tb_ID = 1'
    exec sp_executesql @sql, N'@Num nvarchar(100) output', @Num output
      

  3.   

    大家的方法,都可以。没有一个方法是不能用的,大家回复的好快,我刚在Sql帮助中查到SP_EXECUTESQL,关键子,你们就已经给我了使用方法。谢谢,大家,