CREATE PROCEDURE dt_img 
@t2 char,@t3 char
AS
declare @sql varchar(1000)
set @sql='select sum(test10) as test10 from test where test02='+@t2 +'and test01 like '+'%'+@t3+'%'
exec (@sql)

解决方案 »

  1.   

    我执行
    exec dt_img @t2=03,@t3=t   或exec dt_img @t2=03,@t3='t',老是报错啊!!
      

  2.   

    CREATE PROCEDURE dt_img 
    @t2 char,@t3 char
    AS
    exec('select sum(test10) as test10 from test where test02='+@t2 +'and test01 like '+'''%'+@t3+'%''')
    GOexec dt_img @t2=03,@t3='t'
      

  3.   

    因为你的like 后面事字符串,所以你需要用'''引号将它包含起来.
      

  4.   

    CREATE PROCEDURE dt_img 
    @t2 char,@t3 char
    AS
    exec('select sum(test10) as test10 from test where test02='+@t2 +'and test01 like ''%'+@t3+'%''')
    GOexec dt_img @t2=03,@t3='t'
      

  5.   

    CREATE PROCEDURE dt_img 
    @t2 char,@t3 char
    AS
    exec('select sum(test10) as test10 from test where test02='''+@t2 +''' and test01 like ''%'+@t3+'%''')
    GOexec dt_img '03','t'
      

  6.   

    CREATE PROCEDURE dt_img 
       @t2 char,
       @t3 char,
       @strSQL varchar(256)
    AS
          @strSQL =select sum(test10) as test10 from test where test02=' + @t2 + 'and test01 like ''%'+@t3+'%''
          exec(@strSQL)
    GOexec dt_img '03','t'
      

  7.   

    CREATE PROCEDURE dt_img 
       @t2 char,
       @t3 char,
    AS
    declare
     @strSQL varchar(1024)
     set @strSQL =select sum(test10) as test10 from test where test02=' + @t2 + 'and test01 like ''%'+@t3+'%''
          exec(@strSQL)
    GOexec dt_img '03','t'