Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Estas en el tema de ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente? en el foro de .NET en Foros del Web. Hola, Buenas... Mi consulta es la siguiente, estoy desarrollando una aplicación para una empresa de buses, y tengo dos tablas que son las siguientes: create ...
  #1 (permalink)  
Antiguo 07/07/2009, 10:25
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Hola, Buenas...

Mi consulta es la siguiente, estoy desarrollando una aplicación para una empresa de buses, y tengo dos tablas que son las siguientes:

create table conductores(
rut varchar(12) constraint pkconductores primary key,
nombre varchar(40),
apellidop varchar(40),
apellidom varchar(40),
telefono numeric
);

create table pedidosclientes(
codigo numeric IDENTITY(1,1) constraint pkpedidos primary key,
clientes numeric constraint fkclientes references clientes,
vehiculos numeric constraint fkvehiculos references vehiculos,
conductor varchar(12) constraint fkconductores references conductores,
direccioninicio varchar(200),
direccionfin varchar(200),
fecha varchar(10),
horainicio varchar(10),
horafinal varchar(10),
servicio numeric constraint fkservicios references servicios,
empresa numeric constraint fkconvenio references clientesconvenio,
valor numeric
);

Lo que sucede es que si elimino un conductor, también tendría que eliminar todos los pedidos que realizo este conductor, y con esto eliminar el valor del pedido lo cual me trae problemas a la hora de sacar estadísticas acerca del dinero real que entro por pedidos.

Estoy trabajando con sql server 2000 y vb.net 2005

Espero por favor que me puedan ayudar con mi problema. Les estaria muy agradecido.

De antemano Muchas Gracias...
  #2 (permalink)  
Antiguo 07/07/2009, 10:34
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Haber prueba con esto:

ALTER TABLE pedidosclientes DROP CONSTRAINT fkconductores
GO
ALTER TABLE pedidosclientes ADD CONSTRAINT
fkconductores FOREIGN KEY
(conductor) REFERENCES conductores
(rut) ON UPDATE NO ACTION
ON DELETE SET NULL





Lo que hace realmente es que si eliminas un registro de la tabla conductores que tega algun registro en la tabla pedidoclientes, El valor conductor de la tabla pedidoClientes se asignara como nulo y se procedera a eliminar el registro de la tabla conductores.

Personalmente prefiero tener un campo Bit, indicando su estado (Habilitado/Deshabilitado) en realidad no lo elimino solo lo oculto.
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #3 (permalink)  
Antiguo 07/07/2009, 10:54
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Que tal!

Me surge un interrogante: la empresa no requiere guadar historicamente informacion de los conductores ?
porque en ese caso la tabla conductor no funciona como historia sino temporal y deberias implementar otro metodo.

Saludos.
  #4 (permalink)  
Antiguo 07/07/2009, 11:04
Avatar de neo101  
Fecha de Ingreso: julio-2007
Mensajes: 73
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Si, con respecto a lo que dice Juamd, creo que deberías establecer una bandera o algo que te indique que X conductor esta inactivo para que no lo tomes en cuenta a la hora de tus estadísticas...

Saludos!
  #5 (permalink)  
Antiguo 07/07/2009, 11:34
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Cita:
Iniciado por juamd Ver Mensaje
Que tal!

Me surge un interrogante: la empresa no requiere guadar historicamente informacion de los conductores ?
porque en ese caso la tabla conductor no funciona como historia sino temporal y deberias implementar otro metodo.

Saludos.
claro de ser ese caso las FKs deberian estar diseñadas con on Delete Set Null
de este modo podria eliminarse los registros delos conductores sin necesidad de eliminar los pedidos
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #6 (permalink)  
Antiguo 07/07/2009, 11:40
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
De acuerdo Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Cita:
Iniciado por juamd Ver Mensaje
Que tal!

Me surge un interrogante: la empresa no requiere guadar historicamente informacion de los conductores ?
porque en ese caso la tabla conductor no funciona como historia sino temporal y deberias implementar otro metodo.

Saludos.
No, la empresa no necesita un histórico de conductores, pero me parece apropiado agregar una campo que muestre el estado. en vez de eliminarlo. Pero ¿eso no traerá problemas futuros?

muchas gracias por la respuesta.
  #7 (permalink)  
Antiguo 07/07/2009, 11:42
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Cita:
Iniciado por boluart Ver Mensaje
claro de ser ese caso las FKs deberian estar diseñadas con on Delete Set Null
de este modo podria eliminarse los registros delos conductores sin necesidad de eliminar los pedidos
Serias tan amable de darme un ejemplo de on Delete Set Null, t estaria muy agradecido.
  #8 (permalink)  
Antiguo 07/07/2009, 12:02
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Me lanza el siguiente error ...
Servidor: mensaje 156, nivel 15, estado 1, línea 3
Sintaxis incorrecta cerca de la palabra clave 'SET'.
  #9 (permalink)  
Antiguo 07/07/2009, 12:07
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Cita:
Iniciado por kail521 Ver Mensaje
Serias tan amable de darme un ejemplo de on Delete Set Null, t estaria muy agradecido.
Te lo puse en la primera respuesta
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #10 (permalink)  
Antiguo 07/07/2009, 12:14
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

YA ENCONTRE LA SOLUCION, LO QUE SUCEDE ES QUE ME ENVIA UN ERROR PORQUE ESTOY UTILIZANDO SQL SERVER 2000 QUE NO ES COMPATIBLE CON ON DELTE SET NULL


PERO YA ESTOY MAS CLARO, ME HAN GUIADO MUY BIEN, PONDRÉ LA SOLUCIÓN CUANDO TERMINE.


MUY AGRADECIDO NUEVAMENTE boluart,neo101 Y juamd. Por la pronta respuesta.
  #11 (permalink)  
Antiguo 07/07/2009, 12:17
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

aqui un articulo:

http://www.sqlteam.com/article/using...ey-constraints
__________________
Vivir para ser buenos y ser buenos para servir mejor.
  #12 (permalink)  
Antiguo 07/07/2009, 21:02
(Desactivado)
 
Fecha de Ingreso: julio-2009
Mensajes: 33
Antigüedad: 14 años, 9 meses
Puntos: 0
De acuerdo Respuesta: ¿Como elimino datos de una tabla Relacionada sin eliminarlos realmente?

Excelente guía me sirvió mucho y solucione el problema MUCHAS GRACIAS!!!
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 14:14.