0

我有一个这样的 TSQL 存储过程:

ALTER PROCEDURE [dbo].[SearchEntityDataNew]
@SearchText varchar(100) = '*'  
AS
BEGIN    

   IF CHARINDEX('*', @SearchText) = 0
      SET @SearchText = '%' + @SearchText + '%' 
   ELSE
      SET @SearchText = REPLACE(@SearchText, '*', '%')

  SELECT 'Entity' as pagetype,EntityID,EntityData,EntityDataID 
    FROM EntityData 
    WHERE  EntityData LIKE @SearchText
  union all
  SELECT 'Property' as pagetype,PropertyID,PropertyValue,EntityDataID  
    FROM EntityDataProperty 
    WHERE  PropertyValue LIKE @SearchText
END

我想允许?它等于_运算符。

我如何允许?这样如果用户键入 t_ 则返回“to”。如果用户键入 _t 则返回“It”?

4

1 回答 1

1

您已经替换*%,因此只需在您的变量中替换?为。_@SearchText

于 2012-11-09T15:47:22.560 回答