我有一存储过程:
Create Proc TreeViewClik @Equipment char(20) = '%'
select a.EquiNum,
       a.EquiName,
       a.EquiState,
       b.CompName,
       c.KindName
  From Table_Datum a 
  left join Table_Fact b on a.FactNum = b.FactNum
  left join Table_Kind c on a.KindNum = c.KindNum
where a.EquiName like @Equipment  
我想在不输入参数时查找所有记录,但执行
Exec TreeViewClik 时一条记录也查不出来。
但这样就可以:
select a.EquiNum,
       a.EquiName,
       a.EquiState,
       b.CompName,
       c.KindName
  From Table_Datum a 
  left join Table_Fact b on a.FactNum = b.FactNum
  left join Table_Kind c on a.KindNum = c.KindNum
where a.EquiName like '%'  为什么?谢谢

解决方案 »

  1.   

    存储过程!我不知道怎么写!~
    可在你的程序里加一句!
    例如你的存储过程是通过S: String传递的;
    if s <> '' then
      执行你的存储过程
    else
      执行
      select a.EquiNum,
           a.EquiName,
           a.EquiState,
           b.CompName,
           c.KindName
      From Table_Datum a 
      left join Table_Fact b on a.FactNum = b.FactNum
      left join Table_Kind c on a.KindNum = c.KindNum
      

  2.   

    你用什么数据库?我用SQLServer!改成这样试试!
    Create Procedure TreeViewClik @Equipment char(20) = '%' AS
    begin
    select a.EquiNum,
           a.EquiName,
           a.EquiState,
           b.CompName,
           c.KindName
      From Table_Datum a 
      left join Table_Fact b on a.FactNum = b.FactNum
      left join Table_Kind c on a.KindNum = c.KindNum
    where a.EquiName like @Equipment  
    end
      

  3.   

    不行呀,结果跟我的那个一样,我也用SqlServer2000
      

  4.   

    我自己做了一个测试表!真的没问题的!我copy我的存储过程给你看!
    不过只有一个表!就a b c三个字段,随便插入了几个数据!CREATE PROCEDURE test1  @b char(10)='%' AS
    begin
      Select *  From test Where b Like @b
    end
      

  5.   

    select a.EquiNum,
           a.EquiName,
           a.EquiState,
           b.CompName,
           c.KindName
      From Table_Datum a 
      left join Table_Fact b on a.FactNum = b.FactNum
      left join Table_Kind c on a.KindNum = c.KindNum
    where a.EquiName like '%'  这里你都执行通过了,还会是他的原因?可能性不大!
      

  6.   

    直接用select语句查询没有问题,但写成带参数的存储过程就不行了,不知是什么原因。
      

  7.   

    我认为只要Select语句通过了,存储过程也应该通过!
    你可以到SQlServer去问问!