日期:2014-05-18  浏览次数:20508 次

大家帮我看看这个存储过程!
Create   PROCEDURE   [dbo].[Demo1]
        @f1   varchar(50)
AS
BEGIN
select   *   from   table1   where   f1   like   '%@f1% '
END

执行这段代码后会建立一个存储过程。我就在查询分析器里执行该过程。然后设置参数值,可是查寻不出来任何数据(比如我给值 "1 "),但是我的记录里f1字段下绝对有值是包含 "1 "的!为什么呢?

------解决方案--------------------
--变量要在串外面

select * from table1 where f1 like '% ' + @f1 + '% '
------解决方案--------------------
---变量不能这么写
--方法1
select * from table1 where f1 like '% '+@f1+ '% '
--方法2
select * from table1 where charindex(@f1,f1)> 0
--方法3
select * from table1 where patindex( '% '+@f1+ '% ',f1)> 0
------解决方案--------------------
declare @f1 sysname
set @f1 = 'sysobjects '
select * from sysobjects where name like '% ' + @f1 + '% '