2015-06-01 32 views
0

我想flimname '角斗士' 未在输出中的其他电影名存储过程会产生不正确的输出

alter proc spfilmcriteria(@Minlength as int,@maxlength as int,@title as varchar) 
as 
begin 
select filmname,filmreleasedate,filmruntimeminutes 
from tblFilm 
where filmruntimeminutes > @Minlength and filmruntimeminutes< @maxlength and FilmName like '%' + @title + '%' 
order by filmruntimeminutes asc 
end 

exec spfilmcriteria 150,160,'gladiator' 

输出:

filmname filmreleasedate        filmruntimeminutes 
Gladiator 2000-05-12 00:00:00.000       155 
Harry Potter and the Goblet of Fire 2005-11-18 00:00:00.000 157 
American Gangster 2007-11-16 00:00:00.000     157 

回答

0
alter proc spfilmcriteria(@Minlength as int,@maxlength as int, @title as varchar(max)) 
as 
begin 
select filmname,filmruntimeminutes 
from tblFilm 
where filmruntimeminutes >= @Minlength and filmruntimeminutes<= @maxlength and FilmName like '%' + @title + '%' 
order by filmruntimeminutes asc 
end 
2

您有错误:

alter proc spfilmcriteria(@Minlength as int,@maxlength as int,@title as varchar) 

This @title as varchar默认为@title as varchar(1)

因此,您正在搜索的不是gladiator,而是g

1
@title as varchar  

应该@title as varchar(max)或者你在数据库

存储任何长度