2015-06-01 2 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) 

Этот @title as varchar по умолчанию @title as varchar(1)

Так что действующе вы ищете не gladiator, но g.

1
@title as varchar  

Это должно быть @title as varchar(max) или любой длины вы хранения в базе данных

Смежные вопросы