select @sql='slect s,t1-t2 from 
-->
select @sql='select s,t1-t2 from 

解决方案 »

  1.   

    @wherestr
    中有可能存在非法的字符,如单引号。
      

  2.   

    可以肯定不是@wherestr的问题,我试过把@wherestr取消掉,但还是提示那两个错误
      

  3.   


    不告诉你了吗?里面的select写错了:
      

  4.   

    哦,不好意思,是我打错了。。没注意到那里
    create procedure sp_ss 

      @wherestr varchar(100) 

      declare @sql varchar(100)   select @sql='select s,t1-t2 from 
                (select t,t1,t2 from t where '+@wherestr+ ') k
      
      exec(@sql) 
    go 
    这是修证后的,还是那两个地方出的错,减号和k附近有语法错误
      

  5.   

    select @sql='select s,t1-t2 from 
    ----------------
    子查询里面有没有“s”,你select什么“s”
      

  6.   

    create procedure sp_ss 
      @wherestr varchar(100) 
    as
      declare @sql varchar(100)   select @sql='select * from 
                (select * from aa where '+@wherestr+ ') k' 
      
      exec(@sql) 
    go 
    这样可以吧!!
      

  7.   

    create procedure sp_ss
    as
      declare @sql varchar(10)  select @sql='select m,s1,s2-sk from 
         (select t.t3 as m,s.s1,s.s2,sum(t.t2) as sk from s
        left join t on t.t3=s.t3 
        group by t.t3,s.s1,s.s2) p '  exec(@sql)go
    create table s(t3 varchar(10),s1 float,s2 float )
    create table t(t3 varchar(10),t1 float,t2 float)这是我刚做的,大致就这么个意思
    引号里面的我在分析器里运行成功了
      

  8.   

    declare @sql varchar(10) ---
    declare @sql varchar(8000) 
      

  9.   


    然后创建成存储过程又不行了?不要@sql那个鸟变量,直接EXEC呢?exec ('select m,s1,s2-sk from
        (select t.t3 as m,s.s1,s.s2,sum(t.t2) as sk from s
        left join t on t.t3=s.t3
        group by t.t3,s.s1,s.s2) p ')
      

  10.   

    create table s(t3 varchar(10),s1 float,s2 float ) 
    create table t(t3 varchar(10),t1 float,t2 float) gocreate procedure sp_ss 
    @s varchar(100)
    as 
      declare @sql varchar(1000) 
      set @sql='select m,s1,s2-sk from 
        (select t.t3 as m,s.s1,s.s2,sum(t.t2) as sk from s 
        left join t on t.t3=s.t3 where '+@s+'
        group by t.t3,s.s1,s.s2) p '   exec (@sql) go exec sp_ss 't2 =1 and t.t3 = ''aa'''
    drop table s,t
    drop proc sp_ss