Construction d'une clause WHERE dynamique dans une procédure stockée

Je suis à l'aide de SQL Server 2008 Express, et j'ai une procédure stockée qui ne un SELECT de la table, sur la base de paramètres. J'ai nvarchar paramètres et int paramètres.

Voici mon problème, ma clause where ressemble à ceci:

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

Ces paramètres sont les valeurs de filtre défini par l'utilisateur de mon ASP.NET MVC 3, et le int les paramètres ne peuvent pas être ensemble, de sorte que leur valeur sera 0. C'est mon problème, la procédure stockée recherche d'éléments qui ont 0 comme CityId par exemple, et pour cela, il renvoyer un résultat erroné. Donc, il va être bien, pour être en mesure d'avoir une dynamique où la clause, en fonction de si la valeur de type int paramètre est supérieur à 0, ou pas.

Merci d'avance

source d'informationauteur SidAhmed