if  @flag='2'
          begin
              set  @field='fname,fname,job_id  '
              set  @sqlstr='select  '+@field+  '  from  employee'+'  where  job_id>  10'
              exec(@sqlstr)
          end
      
  end
  
  当flag=2时
  出现‘Incorrect  syntax  near  'job''
  当我把set  @field='fname,fname,job_id  '  改为:
  set  @field='fname,job_id  '时,没有出错
  当我把set  @sqlstr='select  '+@field+  '  from  employee'+'  where  job_id>  10'改为:set  @sqlstr='select  '+@field+  '  from  employee'时,也没有出错
  头痛,真不知道是哪里的问题!!!!!!
  请哪位大虾指点一二

解决方案 »

  1.   

    问题有两个:
    1、declare  @sqlstr  varchar(50),50不够,改为200就没有错误了,这个是主要问题。
    2、set    @field='fname,fname,job_id    '有两个fname,虽然不出错,但在客户端处理时会比较麻烦,建议改为
    set    @field='fname,fname as fname1,job_id    '
      

  2.   

    job_id可能为关键字!用[job_id]吧!
      

  3.   


    Rewiah,给你加系统所接受的最高分100