2015-06-01 31 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)或者你在數據庫

存儲任何長度