declare @tab table
(
id int,
a nvarchar(50)
)declare @sql nvarchar(500)
select @sql='insert into @aatab(id,a) select id,number from MemberInfo'exec sp_executesql @sql,N'@aatab table(id int,a nvarchar(50)) output',@tab outputselect * from @tab
错误:必须声明标量变量 "@tab"。
怎么解决啊??

解决方案 »

  1.   

    declare @tab table
    (
        id int,
        a nvarchar(50)
    )declare @sql nvarchar(500)
    insert into @aatab(id,a) select id,number from MemberInfo'select * from @tab
      

  2.   


    将表变更放在@sql中。test:
    declare @sql nvarchar(500)
    select @sql='declare @tab table
    (
        id int,
        a nvarchar(50)
    )insert into @tab(id,a) select object_id,name from sys.objects select * from @tab 'exec sp_executesql @sql
      

  3.   

    本帖最后由 roy_88 于 2010-08-04 12:34:32 编辑
      

  4.   

    if object_id('MemberInfo') is not null
    drop table MemberInfo
    create table MemberInfo(id int,number varchar(20))
    insert into MemberInfo
    select 1,'001' union all
    select 2,'002'declare @tab table
    (
        id int,
        a nvarchar(50)
    )
    declare @SQL NVARCHAR(4000)        
    SET @SQL = 'select id,number from MemberInfo'
    insert @tab exec(@SQL)select * from @tab-----结果----------
    1 001
    2 002