Построение динамического предложения WHERE в хранимой процедуре

Я использую SQL Server 2008 Express, и у меня есть хранимая процедура, которая выполняет SELECTиз таблицы на основе параметров. У меня есть параметры nvarcharи параметры int.

Вот моя проблема, мое предложение where выглядит так:

WHERE [companies_SimpleList].[Description] Like @What 
    AND companies_SimpleList.Keywords Like @Keywords
    AND companies_SimpleList.FullAdress Like @Where
    AND companies_SimpleList.ActivityId = @ActivityId
    AND companies_SimpleList.DepartementId = @DepartementId
    AND companies_SimpleList.CityId = @CityId

Эти параметры являются значениями фильтра, установленными пользователем моего приложения ASP.NET MVC 3, а параметры intмогут быть не установлены, поэтому их значение будет равно 0. Это моя проблема, хранимая процедура будет искать элементы, которые иметь 0как CityId, например, и для этого он возвращает неверный результат. Так что было бы неплохо иметь динамическое предложение where, основанное на том, больше ли значение параметра int, чем 0, или нет.

Заранее спасибо

17
задан Mahmoud Gamal 9 July 2012 в 14:47
поделиться