select @sql = 'insert' + @t_table + ......
exec @sql

解决方案 »

  1.   

    select @sql = 'insert' + @t_table + ...... ---這裡少個空格
    exec @sql
    直接這樣寫 
    declare @t_table varchar(100)---表變量
    declare @ch varchar(100)---條件
    set @t_table='a(a,b,b)'---或set @t_table ='a'
    set @ch='b,c,d from b where....'
    ----樓主參照一下exec('insert into '+@t_table 
    +' select '+@ch
      

  2.   

    我是想把代码写少一点。我的存储过程如下:
    ALTER PROCEDURE dbo.SearchPicRecordByHowPager
    /*
    (
    @parameter1 datatype = default value,
    @parameter2 datatype OUTPUT
    )
    */
    @m_keyword as nvarchar(200)=null,         --英文关键字
    @m_cnkeyword as nvarchar(500)=null,       --中文关键字
    @m_brand as char(50)=null,   --品牌
    @m_photographyer as char(20)=null,   --摄像师
    @m_how as nvarchar(20)=null,   --查询的条件
    @m_StartRow as int=null,
    @m_StopRow as int=null
    AS
    /* SET NOCOUNT ON */
    declare @t_table table
    (
    [rownum] [int] IDENTITY (1, 1) Primary key NOT NULL ,
    [imagenumber] [nvarchar] (20),
    [imagefilename] [nvarchar] (50),
    [keywords1] [nvarchar] (200),
    [keywords2] [nvarchar] (200),
    [orientation] [nvarchar] (50),
    [pformat] [char] (10),
    [categoryKeywords] [nvarchar] (500),
    [photographer] [char] (50),
    [cnkeywords1] [nvarchar] (500),
    [cnkeywords2] [nvarchar] (500),
    [brand] [char] (50),
    [addinfofilename] [nvarchar] (50),
    [cnformat] [char] (20),
    [cnorientation] [nvarchar] (100),
    [cncategoryKeywords] [nvarchar] (1000),
    [sourcedir] [nvarchar](400),
    [imagelevel] [int],
    [adddatetime] [datetime],
    [clicktimes] [int]
    )
    set rowcount @m_StopRow
    --插入到@t_table变量中
    if @m_how='ONLYCNKEYWORD'
    insert @t_table(
    [imagenumber],
    [imagefilename],
    [keywords1],
    [keywords2],
    [orientation],
    [pformat],
    [categoryKeywords],
    [photographer],
    [cnkeywords1],
    [cnkeywords2],
    [brand],
    [addinfofilename],
    [cnformat],
    [cnorientation],
    [cncategoryKeywords],
    [sourcedir],
    [imagelevel],
    [adddatetime],
    [clicktimes]
    ) select * from t_imagesinfo where cnkeywords1 like @m_cnkeyword order by imagelevel 
    if @m_how='CNKEYWORDANDBRAN'
    insert @t_table(
    [imagenumber],
    [imagefilename],
    [keywords1],
    [keywords2],
    [orientation],
    [pformat],
    [categoryKeywords],
    [photographer],
    [cnkeywords1],
    [cnkeywords2],
    [brand],
    [addinfofilename],
    [cnformat],
    [cnorientation],
    [cncategoryKeywords],
    [sourcedir],
    [imagelevel],
    [adddatetime],
    [clicktimes]
    ) select * from t_imagesinfo where cnkeywords1 like @m_cnkeyword and brand=@m_brand order by imagelevel

    select * from @t_table where rownum >=@m_StartRow order by rownum
    RETURN 如上把if这里的代码写少点因为how参数有很多