SQLSERVER不允许,语法错误。
用EXEC
exec( 'select * from ' + @table ),还有最好用开发程序做,更容易。

解决方案 »

  1.   

    给你写个完整的,没有调试,你自己调试一下。create proc aa
    @a  int output,
    @b  int output
    as
    declare @s1 nchar(200),@s2 nchar(200)
    set @s1=N'select @p1=3sum(money) from '+ @table
    set @s2=N'select @p1=sum(money) from '+ @table +' where id=2'
    sp_executesql @s1, N'@p1 int output', @a output
    sp_executesql @s2, N'@p1 int output', @b outputreturn
      

  2.   

    更正1:create proc aa
    @table char(20),
    @a int output,
    @b int output
    as
    declare @s1 nchar(200),@s2 nchar(200)
    set @s1=N'select @p1=3sum(money) from '+ @table
    set @s2=N'select @p1=sum(money) from '+ @table +' where id=2'
    exec sp_executesql @s1, N'@p1 int output', @a output
    exec sp_executesql @s2, N'@p1 int output', @b outputreturn