Store Procedure y LIKE
Publicado por euss (2 intervenciones) el 26/09/2007 23:50:03
Hola.
Tengo una consulta que genero dinamicamente, pero ocurre un pequeño problema con el LIKE, funciona sin el comodin %, pero cuando lo quiero poner con la sintaxis LIKE '%@nombre%' no me regresa ningun registro. El codigo del Store Procedure es el siguiente:
SET @criteria = N' WHERE 1=1 '
IF @month <> '-1'
SET @criteria = @criteria + N' AND DATEPART(MONTH,fecha) = @mes '
IF @year <> '-1'
SET @criteria = @criteria + N' AND DATEPART(YEAR,fecha) = @anio '
IF @name <> '*'
SET @criteria = @criteria + N' AND espectaculo LIKE @nombre'
SET @statement = 'SELECT * FROM evento + @criteria+ N' ORDER BY nombre'
exec sp_executesql @statement, N'@mes int, @anio int, @nombre varchar(255)', @month, @year, @name
Esta consulta funciona correctamente, el problema es cuando quiero agregar el comodin %, si pongo:
SET @criteria = @criteria + N' AND espectaculo LIKE ''%@nombre%'''
No me marca error pero la consulta no funciona. Espero puedan ayudarme.
Gracias.
Tengo una consulta que genero dinamicamente, pero ocurre un pequeño problema con el LIKE, funciona sin el comodin %, pero cuando lo quiero poner con la sintaxis LIKE '%@nombre%' no me regresa ningun registro. El codigo del Store Procedure es el siguiente:
SET @criteria = N' WHERE 1=1 '
IF @month <> '-1'
SET @criteria = @criteria + N' AND DATEPART(MONTH,fecha) = @mes '
IF @year <> '-1'
SET @criteria = @criteria + N' AND DATEPART(YEAR,fecha) = @anio '
IF @name <> '*'
SET @criteria = @criteria + N' AND espectaculo LIKE @nombre'
SET @statement = 'SELECT * FROM evento + @criteria+ N' ORDER BY nombre'
exec sp_executesql @statement, N'@mes int, @anio int, @nombre varchar(255)', @month, @year, @name
Esta consulta funciona correctamente, el problema es cuando quiero agregar el comodin %, si pongo:
SET @criteria = @criteria + N' AND espectaculo LIKE ''%@nombre%'''
No me marca error pero la consulta no funciona. Espero puedan ayudarme.
Gracias.
Valora esta pregunta


0