create proc p_qry
@my1 varchar(10),
@my2 varchar(10),
@my3 varchar(10)
as
SELECT   d_temp.ID,   
         d_temp.UnitCode,   
         d_temp.InfoYear,   
         d_temp.PoorPerson  
    FROM d_temp  
   
WHERE ( d_temp.InfoYear = @my1 ) AND  
         ( d_temp.PoorPerson = @my2 ) AND  
         ( d_temp.UnitCode like @my3 )    

解决方案 »

  1.   

    --创建存储过程
    create procedure name_pro
    as
    SELECT   d_temp.ID,   
             d_temp.UnitCode,   
             d_temp.InfoYear,   
             d_temp.PoorPerson  
        FROM d_temp  
       
    WHERE ( d_temp.InfoYear = :my1 ) AND  
             ( d_temp.PoorPerson = :my2 ) AND  
             ( d_temp.UnitCode like :my3 )  --执行存储过程
    exec name_pro
      

  2.   


    --调用
    exec p_qry 'aa','bb','cc'
    --注意@my1~@my3的数据类型要对应你的字段InfoYear ,PoorPerson ,UnitCode 的类型
      

  3.   

    create proc p_qry
    @my1 varchar(10),
    @my2 varchar(10),
    @my3 varchar(10)
    as
    SELECT   d_temp.ID,   
             d_temp.UnitCode,   
             d_temp.InfoYear,   
             d_temp.PoorPerson  
        FROM d_temp  
       
    WHERE ( d_temp.InfoYear = @my1 ) AND  
             ( d_temp.PoorPerson = @my2 ) AND  
             ( d_temp.UnitCode like @my3 )   --对于like来说,如果是调用时的参数用 @my3='%aa%'的形式,这样写like 更灵活
      

  4.   

    SQL查询分析器里面调用应该怎么写?
      

  5.   

    如果是楼主喜欢like是写死的一种形式,则改:
    ( d_temp.UnitCode like @my3 )为:
    ( d_temp.UnitCode like '%'+@my3+'%' )
      

  6.   

    调用方法在上面已经写了--普通调用
    exec p_qry 'aa','bb','cc'  --这样调用,相当于 d_temp.UnitCode = 'cc'--模糊条件查询调用
    exec p_qry 'aa','bb','%cc%'