SQL Server - Eliminacion logica en SP

 
Vista:

Eliminacion logica en SP

Publicado por Pablo (1 intervención) el 30/10/2011 15:29:06
buenas buenas...!

dirigido a quien quiera ayudarme...

Tengo unos problemitas con un Procedimiento Almacenado, la base de datos consiste en un centro de alquileres de vehiculos, la cual ofrece el servicio de choferes.
El procedimiento pide eliminar a un chofer sin perder los datos de la labor realizada por el mismo. Tengo entendido que debo hacerlo con el metodo de eliminacion logica, de el cual no tengo idea.
Desde ya se agradece cualquier ayuda brindada.


Letra:
Dado la CI de un chofer eliminarlo del sistema definitivamente, pero si esta vinculado con algun alquiler no se quiere eliminar dicho alquiler, pero si quitar al chofer. Agregue los atributos necesarios para que esta operacion se pueda efectuar. Deberá retornar -1 si la cedula no está, -2 si tiene uno o mas alquileres y 1 si ésta no tiene alquileres.





GRACIAS TOTALES
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Eliminacion logica en SP

Publicado por leonardo_josue (79 intervenciones) el 01/11/2011 17:57:37
Hola Pablo... para hacer una eliminación lógica y no física, lo que tienes que hacer es agregar un campo a tu tabla que tenga las veces de "bandera", ya sea booleano (solo estado verdadero o falso) o un estatus (donde puedas almacenar 1 o más estados), sería más o menos así

1
2
3
4
5
6
CHOFERES:
idChofer|Nombre|Activo
---------------------------------
1|Hugo|true
2|Pago|false
3|Luis|true



En este caso Pago no está como activo, por lo tanto no debería ser considerado en los procesos del sistema.

Sin embargo en lo particular prefiero manejar un campo estatus, donde manejes un catálogo aparte, ya que es mucho más versatil y te permite controlar más cosas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
CHOFERES
idChofer|Nombre|Estatus
---------------------------------
1|Hugo|1
2|Pago|2
3|Luis|3
4|Lucas|4
 
ESTATUS
-------------------------
1|Activo
2|Baja
3|Licencia Médica
4|Suspendido temporalmente


Aquí se observa que sólo Hugo está activo, mientras que los otros tres choferes no pueden ser considerados, uno de manera definitiva al estar dado de baja y dos de manera temporal.

Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar