2015-04-17 55 views
-1

所以我创建一个程序,它允许用户通过名称或说明与LIKE操作调用LIKE%SQL程序

CREATE PROCEDURE dbo.usp_Product(
    @name varchar(50), 
    @description varchar(MAX)) 

    AS 
    SELECT p.name, 
      p."description" 
    FROM Product p 
    WHERE p.name LIKE @name OR p."description" LIKE @description 
    GO 
     EXECUTE usp_Product @kids or @toys for kids 

我不知道在哪里林布莱恩错了,其程序代码或执行搜索产品步骤。

有什么建议吗?谢谢

+1

如何更改为LIKE '@description'? – JFPicard

+0

可能重复[在参数变量上使用Like?](http://stackoverflow.com/questions/11152607/using-like-on-a-parameter-variable) – Tanner

+3

你是什么意思由@kids或@toys为孩子'? – usr

回答

3
WHERE p.name LIKE '%' + @name + '%' OR p.description LIKE '%' + @description + '%' 
+0

您可能还想在两个变量中都转义特殊字符(如更多%)。 – Thilo

+0

谢谢你很好地工作,执行时我加 - \t EXECUTE usp_Product @ name ='toy',@ description ='small' – Vlad11

0

试着用这个。

CREATE PROCEDURE dbo.usp_Product(
@name varchar(50), 
@description varchar(MAX)) 

AS 
SELECT Column_Name1,Column_Name2 FROM Table_Name WHERE Column_Name1 LIKE @name OR Column_Name2 LIKE @description 
GO 

和执行存储过程

EXECUTE usp_Product 'value1','value2' 

希望它可以帮助