Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

CRUD en un solo Store procedure

Estas en el tema de CRUD en un solo Store procedure en el foro de SQL Server en Foros del Web. Muy buen día apreciados Ingenieros Tengo 4 SP Para hacer las operacion de un CRUD Me gustaria poder reducirlo a uno solo pero como hago ...
  #1 (permalink)  
Antiguo 20/01/2014, 09:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 2 meses
Puntos: 0
CRUD en un solo Store procedure

Muy buen día apreciados Ingenieros
Tengo 4 SP Para hacer las operacion de un CRUD

Me gustaria poder reducirlo a uno solo
pero como hago para que me reciba un parametro y de acuerdo al parametro valla
al case correspondiente Seria algo como un Switch pero en sql
no lo se hacer


--Creacion de Personas
use HRM
go

create proc C_persona

@codigo int,
@nombre varchar(50),
@apellido varchar(50)
as
begin
insert into PERSONAS values(@codigo,@nombre,@apellido)
end

--Leer personas

use HRM
GO

create proc R_persona

@codigo int
as
begin
Select * from PERSONAS where id_ser=@codigo
end

--Actualizar Personas
use HRM
go

create proc U_persona

@codigo int,
@nombre varchar(50),
@apellido varchar(50)
as
begin
update PERSONAS set nombre_persona=@nombre,apellidos_persona=@apellido where id_ser=@codigo
end
--Eliminar Personas
use HRM
GO

create proc D_persona

@codigo int
as
begin
delete PERSONAS where id_ser=@codigo
end



exec C_persona 86075706,'Beimar','Trujillo' --CREACION
exec R_persona 86075706 --READ
exec U_persona 86075706,'Actualizacion','Prueba' --UPDATE
exec D_persona 86075706 --Delete


de Antemano muchas gracias por su Colaboración
Cordialsaludo

Última edición por beimar24; 20/01/2014 a las 09:56
  #2 (permalink)  
Antiguo 20/01/2014, 11:21
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: CRUD en un solo Store procedure

Hola beimar24, tenés que crearte un SP que reciba como parametro un valor por ej:
tipo_operacion y pasarle los valores que necesitas que se asemejen a tus operaciones.

Va el ejemplo con código T-SQL:
Código SQL:
Ver original
  1. CREATE PROCEDURE(@tipo_operacion.....)
  2.  
  3. BEGIN
  4.  
  5. IF @TIPO_OPERACION = 'C'  /* CREACION */
  6.  
  7. --ACCIONES A REALIZAR
  8.  
  9. IF @TIPO_OPERACION = 'R'  /* LECTURA*/
  10.  
  11. --ACCIONES A REALIZAR
  12.  
  13. IF @TIPO_OPERACION = 'U'  /* UPDATEES*/
  14.  
  15. --ACCIONES A REALIZAR
  16.  
  17. IF @TIPO_OPERACION = 'D'  /* DELETES*/
  18.  
  19. --ACCIONES A REALIZAR
  20.  
  21. END

Espero te haya servido de ayuda.

Saludos

damimg
  #3 (permalink)  
Antiguo 20/01/2014, 11:21
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: CRUD en un solo Store procedure

si estas usando procedures puedes hacer

Código SQL:
Ver original
  1. CREATE PROCEDURE mi_proc (@opcion INT)
  2. AS
  3. IF @opcion=1
  4. BEGIN
  5. --instrucciones opcion1
  6. END
  7.  
  8. IF @opcion=2
  9. BEGIN
  10. END
y asi sucesivamente
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 20/01/2014, 14:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: CRUD en un solo Store procedure

Hola buenas tardes y muchas gracias por responder
tengo esto

CREATE PROC DETODO (@opcion INT)

DECLARE @OPCION1 INT
SET @OPCION1=@opcion

@codigo int,
@nombre varchar(50),
@apellido varchar(50)
AS
IF @OPCION1=1
BEGIN
insert into PERSONAS values(@codigo,@nombre,@apellido)
END


Pero me arroja el Siguiente Error

Mens 156, Nivel 15, Estado 1, Procedimiento DETODO, Línea 3
Sintaxis incorrecta cerca de la palabra clave 'DECLARE'.
Mens 102, Nivel 15, Estado 1, Procedimiento DETODO, Línea 6
Sintaxis incorrecta cerca de '@codigo'.
Mens 137, Nivel 15, Estado 2, Procedimiento DETODO, Línea 13
Debe declarar la variable escalar "@codigo".


Que estoy haciendo mal??
de antemano muchas gracias por su Colaboración
Cordialmente
Beimar Trujillo
  #5 (permalink)  
Antiguo 20/01/2014, 14:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Información Respuesta: CRUD en un solo Store procedure

Código SQL:
Ver original
  1. CREATE PROCEDURE DETODO (@opcion INT)
  2. AS
  3. DECLARE @OPCION1 INT,
  4. @codigo INT,
  5. @nombre VARCHAR(50),
  6. @apellido VARCHAR(50)
  7.  
  8. SET @OPCION1=@opcion
  9.  
  10. IF @OPCION1=1
  11. BEGIN
  12. INSERT INTO PERSONAS VALUES(@codigo,@nombre,@apellido)
  13. END

aunque te comento que en este ejemplo no te insertaria nada porque no estas pasandole los valores de @codigo,@nombre o @apellido, o en su defecto no los estas asignando :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 20/01/2014, 16:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: CRUD en un solo Store procedure

Hola y buen dia
Muchas gracias por tu atención
wahoo perfecto ahora me ejecuto
entonces ahora en el exec
que debo hacer
  #7 (permalink)  
Antiguo 20/01/2014, 16:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: CRUD en un solo Store procedure

completo quedaria algo asi:


Código SQL:
Ver original
  1. CREATE PROCEDURE DETODO (@opcion VARCHAR(20),@codigo INT,
  2. @nombre VARCHAR(50),
  3. @apellido VARCHAR(50)
  4. )
  5. AS
  6. IF @OPCION='Insertar'
  7. BEGIN
  8. INSERT INTO PERSONAS VALUES(@codigo,@nombre,@apellido)
  9. END
  10.  
  11.  
  12. EXEC detodo 'Insertar',11111,'yo','tu'

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 20/01/2014, 16:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: CRUD en un solo Store procedure

Efectivamente
Muchas gracias
Listo me funciono


Tema Solucionado

Infinitas Gracias

Etiquetas: crud, procedure, select, sql, store
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:49.