StoreProcedure

02/12/2004 - 15:48 por Mauricio Yevenes | Informe spam
Puedo hacer esto?

CREATE PROCEDURE BuscaDescripcion

(

@Tabla as varchar(20) = '',

@CampCod as varchar(20) = '',

@CampDes as varchar(20) = '',

@CodBus as varchar(2) = '',

@DesBus as varchar(60) = ''

)

AS



if @CodBus = '' begin

set @CodBus = null

end

if @DesBus = '' begin

set @DesBus = null

end

if @CodBus <> '' begin

if @CodBus like '%*%' begin

set @CodBus = replace(@CodBus,'*','%')

end

else begin

set @CodBus = '%' + @CodBus + '%'

end

end

if @DesBus <> '' begin

if @DesBus like '%*%' begin

set @DesBus = replace(@DesBus,'*','%')

end

else begin

set @DesBus = '%' + @DesBus + '%'

end

end

SELECT @CampCod, @CampDes

FROM @Tabla

WHERE

@CampCod LIKE ISNULL(@CodBus,@CampCod) AND @CampDes LIKE
ISNULL(@DesBus,@CampDes)

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
02/12/2004 - 15:01 | Informe spam
No das explicaciones de lo que desearías hacer, pero con algo de imaginación
entiendo que quieres ejecutar una SELECT construida dinámicamente.

Así como lo has escrito, no va a funcionar. Debes construir la sentencia
SELECT en una variable string (e.g. @sqlcmd) y luego ejecutar dicha variable
usando EXEC o sp_executesql. Hay ejemplos en los Books Online (BOL) de tu
instalación.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Mauricio Yevenes" wrote in message
news:
Puedo hacer esto?

CREATE PROCEDURE BuscaDescripcion

(

@Tabla as varchar(20) = '',

@CampCod as varchar(20) = '',

@CampDes as varchar(20) = '',

@CodBus as varchar(2) = '',

@DesBus as varchar(60) = ''

)

AS



if @CodBus = '' begin

set @CodBus = null

end

if @DesBus = '' begin

set @DesBus = null

end

if @CodBus <> '' begin

if @CodBus like '%*%' begin

set @CodBus = replace(@CodBus,'*','%')

end

else begin

set @CodBus = '%' + @CodBus + '%'

end

end

if @DesBus <> '' begin

if @DesBus like '%*%' begin

set @DesBus = replace(@DesBus,'*','%')

end

else begin

set @DesBus = '%' + @DesBus + '%'

end

end

SELECT @CampCod, @CampDes

FROM @Tabla

WHERE

@CampCod LIKE ISNULL(@CodBus,@CampCod) AND @CampDes LIKE
ISNULL(@DesBus,@CampDes)


Respuesta Responder a este mensaje
#2 Javier Loria
02/12/2004 - 15:14 | Informe spam
Hola:
Si ejecutas SQL Dinamico si podrias.
Puedes revisar:
http://www.hayes.ch/sql/sql_dinamico.html
En resumen, lo que estas haciendo es lento, inseguro, dificil de
escribir y dificil de dar mantenimiento.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Mauricio Yevenes" wrote in message
news:
Puedo hacer esto?

CREATE PROCEDURE BuscaDescripcion

(

@Tabla as varchar(20) = '',

@CampCod as varchar(20) = '',

@CampDes as varchar(20) = '',

@CodBus as varchar(2) = '',

@DesBus as varchar(60) = ''

)

AS



if @CodBus = '' begin

set @CodBus = null

end

if @DesBus = '' begin

set @DesBus = null

end

if @CodBus <> '' begin

if @CodBus like '%*%' begin

set @CodBus = replace(@CodBus,'*','%')

end

else begin

set @CodBus = '%' + @CodBus + '%'

end

end

if @DesBus <> '' begin

if @DesBus like '%*%' begin

set @DesBus = replace(@DesBus,'*','%')

end

else begin

set @DesBus = '%' + @DesBus + '%'

end

end

SELECT @CampCod, @CampDes

FROM @Tabla

WHERE

@CampCod LIKE ISNULL(@CodBus,@CampCod) AND @CampDes LIKE
ISNULL(@DesBus,@CampDes)


Respuesta Responder a este mensaje
#3 Mauricio Yevenes
02/12/2004 - 21:35 | Informe spam
Muchas Gracias.


"Javier Loria" wrote in message
news:%23NQ$
Hola:
Si ejecutas SQL Dinamico si podrias.
Puedes revisar:
http://www.hayes.ch/sql/sql_dinamico.html
En resumen, lo que estas haciendo es lento, inseguro, dificil de
escribir y dificil de dar mantenimiento.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Mauricio Yevenes" wrote in message
news:
> Puedo hacer esto?
>
> CREATE PROCEDURE BuscaDescripcion
>
> (
>
> @Tabla as varchar(20) = '',
>
> @CampCod as varchar(20) = '',
>
> @CampDes as varchar(20) = '',
>
> @CodBus as varchar(2) = '',
>
> @DesBus as varchar(60) = ''
>
> )
>
> AS
>
>
>
> if @CodBus = '' begin
>
> set @CodBus = null
>
> end
>
> if @DesBus = '' begin
>
> set @DesBus = null
>
> end
>
> if @CodBus <> '' begin
>
> if @CodBus like '%*%' begin
>
> set @CodBus = replace(@CodBus,'*','%')
>
> end
>
> else begin
>
> set @CodBus = '%' + @CodBus + '%'
>
> end
>
> end
>
> if @DesBus <> '' begin
>
> if @DesBus like '%*%' begin
>
> set @DesBus = replace(@DesBus,'*','%')
>
> end
>
> else begin
>
> set @DesBus = '%' + @DesBus + '%'
>
> end
>
> end
>
> SELECT @CampCod, @CampDes
>
> FROM @Tabla
>
> WHERE
>
> @CampCod LIKE ISNULL(@CodBus,@CampCod) AND @CampDes LIKE
> ISNULL(@DesBus,@CampDes)
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida