La construction dynamique où l'état dans l'instruction SQL

Je veux construire personnalisé Où l'état basé sur la procédure stockée entrées, si non nul, je vais les utiliser dans la déclaration, sinon je ne vais pas les utiliser.

if @Vendor_Name is not null
    begin 

    set @where += 'Upper(vendors.VENDOR_NAME) LIKE "%"+ UPPER(@Vendor_Name) +"%"'

    end
    else if @Entity is not null
    begin
    set @where += 'AND headers.ORG_ID = @Entity'
    end
select * from table_name where @where

Mais j'obtiens cette erreur

An expression of non-boolean type specified in a context where a condition is expected, near 'set'.

OriginalL'auteur Mohamed Abdel Hakim | 2013-09-30