我想为搜索功能编写存储过程。我有一个电影数据库,我应该可以通过Movie.Name
,Movie.Producer
,Movie.Director
搜索电影并显示Cast.Name
。
CREATE PROCEDURE RetrieveSearchResults
@tokenParam VarChar
AS
Select *
from
(Movie
join
Cast on Movie.MovieID = Cast.MovieID)
join
Actor on Actor.ActorID = Cast.ActorID
where
(Movie.Name like '%' + @tokenParam + '%')
or (Movie.Producer like '%' + @tokenParam + '%')
or (Movie.Director like '%' + @tokenParam + '%')
or (Actor.Name like '%' + @tokenParam + '%')
执行时
RetrieveSearchResults 'Almighty'
我几乎所有的元组都没有像'全能'那样的文字
我错过了什么吗?
答案 0 :(得分:5)
尝试声明varchar限制。 VARCHAR(100)或类似的东西。它可能会对长度进行假设并将其缩小为VARCHAR(1)或类似值。声明VARCHAR没有长度的问题是系统将为您分配,它可能不是您所期望的。