Store Procedure + Todo en un solo Procedimiento (Update, Delete, Inser,listar, buscar)

08/10/2009 - 23:06 por Don Quijote de Nicaragua | Informe spam
Hola a todos, me gustaría preguntar algo, estamos elaborando un
sistema y parece que tendremos que crear muchisiimo procedimientos
almacenados, entonces estamos tomando la desición de poner digamos si
es el procedimiento de Pais, dejar un único procedimiento denominado
"spPais" y poner dentro de él las opciones de nuevo, modificar,
borrar, listar, buscar, etc, y lo identificariamos por un parametro,
creen ustedes que estro tendria algún efecto en el rendimiento al
momento de ejecutarlo.

CREATE PROCEDURE spEjemplo
@valor1 integer = NULL ,
@valor2 VARCHAR(200) NULL,
@nType integer
AS BEGIN
IF @nType=1 INSERT INTO ..
ELSE IF ...@nType=2
UPDATE CountryId=@CountryId;
ELSE IF @nType=0 DELET
END

Muchas Gracias.
Don Quijote de Nicaragua.

Preguntas similare

Leer las respuestas

#11 Gustavo Larriera Sosa
10/10/2009 - 21:28 | Informe spam
Personalmente estoy a favor de separar cada operación CRUD en un
procedimiento separado, en vez de tener un procedimiento que haga varias
cosas diferentes a la vez.

Le sugiero también que use un generador de operaciones CRUD; hay muchos
buenos y gratis, y le harán el trabajo sucio de generar el código de los
procedimientos.

Gustavo Larriera Sosa
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Don Quijote de Nicaragua" wrote:

Hola a todos, me gustaría preguntar algo, estamos elaborando un
sistema y parece que tendremos que crear muchisiimo procedimientos
almacenados, entonces estamos tomando la desición de poner digamos si
es el procedimiento de Pais, dejar un único procedimiento denominado
"spPais" y poner dentro de él las opciones de nuevo, modificar,
borrar, listar, buscar, etc, y lo identificariamos por un parametro,
creen ustedes que estro tendria algún efecto en el rendimiento al
momento de ejecutarlo.

CREATE PROCEDURE spEjemplo
@valor1 integer = NULL ,
@valor2 VARCHAR(200) NULL,
@nType integer
AS BEGIN
IF @nType=1 INSERT INTO ..
ELSE IF =2
UPDATE CountryId=@CountryId;
ELSE IF @nType=0 DELET
END

Muchas Gracias.
Don Quijote de Nicaragua.

Respuesta Responder a este mensaje
#12 DiegoC
13/10/2009 - 16:03 | Informe spam
Hola Carlos

Te hago una pregunta, vos haces los Insert/Delete/Update desde tus programas
directamente ??
Porque por ejemplo, yo armo SPs para Insert/ Update / Delete / Select para
cada tabla en las que los necesito, y llamo a estos SP desde el rpograma.
Me parece mucho mas limpio, prolijo y ademas, en caso de por ejemplo los de
Select si necesitan x campo mas por ejemplo, solamente modificas el SP en
lugar de tener que estar recompilando la aplicacion.
Ojo, no es para generar polemica, solamente escribo para exponer mis usos y
ver que usos le dan otros profecionales a la herramientas y con esto podamos
entre todos aprender mas.

Saludos y gracias a todos.

Diego

"Carlos M. Calvelo" escribió en el mensaje
news:xobrdcliyk2o$
Hola Diego,

On Fri, 9 Oct 2009 15:30:00 -0300, DiegoC wrote:

Hola Carlos, me parece que lo de usar SQL Dinamico, no es conveniente por
el
tema de performance, sino me equivoco haria que los palnes de ejecucion
no
sean reutilizables.




Claro que no es conveniente. Lo conveniente es utizar las operaciones
select, insert, update y delete de SQL, que para eso están.


En el caso de querer implementar todo en un SP podria usar como
parametro_1,
el tipo de operacion, como parametro_2 un XML con los datos a
Updatear/Insertar, Parametro_3 Filtro (Updatear/Eliminar/Buscar)



Y eso si sería 'conveniente'? Son entonces los planes de ejecución
reutilizables?

Yo no le veo ningún sentido a la idea orignal de no tener acceso a las
tablas si no es por medio de procedimientos. En cuanto no entienda
eso (desde la técnica, no la política de las empresas), cualquier
alternativa me va a parecer bastante 'chapuza'.

Saludos,
Carlos
Respuesta Responder a este mensaje
#13 Carlos M. Calvelo
13/10/2009 - 20:55 | Informe spam
Hola Diego,

On Tue, 13 Oct 2009 11:03:50 -0300, DiegoC wrote:

Hola Carlos

Te hago una pregunta, vos haces los Insert/Delete/Update desde tus programas
directamente ??
Porque por ejemplo, yo armo SPs para Insert/ Update / Delete / Select para
cada tabla en las que los necesito, y llamo a estos SP desde el rpograma.
Me parece mucho mas limpio, prolijo y ademas, en caso de por ejemplo los de
Select si necesitan x campo mas por ejemplo, solamente modificas el SP en
lugar de tener que estar recompilando la aplicacion.
Ojo, no es para generar polemica, solamente escribo para exponer mis usos y
ver que usos le dan otros profecionales a la herramientas y con esto podamos
entre todos aprender mas.



Aggggg! Ahí vamos otra vez! :(

Ya había empezado a escribir una respuesta directa y bastante elaborada,
pero he decidido no enviarla. Eso porque este tema y otros muy relacionados
han sido discutidos hasta la saciedad y no sé que puedo decir que no haya
sido ya dicho.

Solo esto: si me quieres hacer caso a mi, no vuelvas a tratar de comparar
un lenguaje como SQL con una lista de procedimientos como si de dos cosas
equivalentes se tratara.

Te aconsejo que busques esas discusiones. Yo he participado en mas de una.
Busca mensages de "Alfredo Novoa" o quizas simplemente "procedimientos
almacenados" en este y otros foros. Encontrarás nos solo opiniones sino
también referencias y otros conceptos con los que podrás seguir buscando si
te interesa.

Si tu interés es genuino y a largo plazo, cuando te hayas formado una
opinión sobre lo que has encontrado, vuelves y nos lo cuentas.


Saludos y gracias a todos.



Saludos a ti,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida