Otra solución seria que la consulta la metieras en un string
y este lo ejecutas.
Ejemplo
Create Proc SP_Ejem
@Opt1 Char(2),
@Opt2 Char(2) ,
@Opt3 Char(2)
As
Declare
@SqlText Varchar(100)
Begin
Select @SqlText = 'Select * From Tabla1 (Nolock) '
If @Opt1 <> ''
Select @SqlText = @SqlText + ' Where Camp1 = ' + @Opt1
If @Opt2 <> ''
If @Opt1 <> ''
Select @SqlText = @SqlText + ' And Camp1 = ' + @Opt2
Else
Select @SqlText = @SqlText + ' Where Camp1 = ' + @Opt2
If @Opt3 <> ''
If @Opt1 <> '' or @Opt2 <> ''
Select @SqlText = @SqlText + ' And Camp1 = ' + @Opt3
Else
Select @SqlText = @SqlText + ' Where Camp1 = ' + @Opt3
exec(@SqlText)
End
-- Es algo así
Atte
-------------------------------
Gabriel Sanchez
México
[email protected]