exec('select  *   from '+ @table)

解决方案 »

  1.   

    输出选择的值?
    declare @tabName nvarchar(100)
    declare @num int
    declare @sql nvarchar(500)
    set @sql=N'select @num=count(*) from ' +@tabName
    execute sp_executesql @sql,N'@num int output',@num output
    select @num
      

  2.   

    你可以自定义函数,让函数返回一个表如:
    select * form dbo.GetSubClass()
    函数定义例如:
    CREATE FUNCTION GetSubClass () 
    RETURNS @SubClass TABLE
    (SubClassID bigint,SubClassName nvarchar(50))
     AS 
    BEGIN 
    INSERT @SubClass(SubClassID,SubClassName)
    SELECT ClassID,ClassName FROM Class 
    RETURN
    END
      

  3.   

    自定义函数中还可以,加参数
    如:
    select * form dbo.GetSubClass(id)
    函数定义略...