Hola, estoy programando en ASP.NET con SQL Server, y todo funcionaba bien, hasta que decidi empezar a usar Stored Procedures. Tengo un problema con el 'like', ya que parece que cuando se lo usa normalmente en una consulta funciona bien, pero cuando se lo usa en combinacion con parametros no.
Esta es un ejemplo de una consulta, la cual funciona sin problemas, usando la BD pubs:
___________
select * from dbo.authors where state like 'CA' and zip like '946%'
___________
Sin embargo, cuando la escribo como un stored procedure, me da problemas.
Este es mi Stored Procedure:
___________________________
Alter Procedure PrimeraConsulta
(@state char(2), @zip char(5))
as
select * from dbo.authors
where ((state like case when @state is null then state else @state end)
and
(zip like case when @zip is null then zip else (@zip + '%') end))
________________________
exec PrimeraConsulta 'CA', '946%'
_________________________
Lo que quiero hacer es poder especificar el estado, y en cuanto al zip, basta con escribir los primeros dígitos, y por eso uso la sentencia 'like' junto con el '%'
Tambien, use un 'case end' para que si el parametro es dejado vacio, no se lo tome en cuenta.
Gracias de antemano