deletes y updates en cascada

03/06/2004 - 11:57 por Jomaweb | Informe spam
¿Exactamente cómo funciona el borrado y la actualización en cascada cuando
defino una relación en un diagrama?
¿importa el orden en que cojo los campos?

gracias

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
03/06/2004 - 12:25 | Informe spam
¿Qué es lo que no entiendes exactamente? El orden efectivamente importa,
pero para poder crear la relación entre las tablas correctamente... Una vez
que lo has hecho, simplemente hay que marcar la opción de borrado y/o
actualización en cascada y el motor de encarga de todo



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Jomaweb" escribió en el mensaje
news:
¿Exactamente cómo funciona el borrado y la actualización en cascada cuando
defino una relación en un diagrama?
¿importa el orden en que cojo los campos?

gracias


Respuesta Responder a este mensaje
#2 Jomaweb
03/06/2004 - 16:25 | Informe spam
Seré más concreto. Uso la herramienta de diagramas que viene en el
administrador corporativo.

Establecida una relación, activar "en cascada" ¿implica que se borran o
actualizan todos los registros dependientes?

Es que me encuentro que cuando creo una relación en el diagrama de BBDD de
SQL Server, siempre me lo hace correctamente, es decir, la relación "uno a
muchos" (llave a infinito) siempre me la coloca bien. Por lo cual no sé si
fiarme o es casualidad.

Tengo que suponer que para el caso FK_Clientes_Pedidos (llave sobre Clientes
, infinito sobre pedidos) si borro un cliente automáticamente (sin otra
intervención por mi parte) ¿se borran todos sus pedidos?

Me viene bien y mal al mismo tiempo. Bien porque me ahorro lineas de
programacion en mi lógica de negocio, pero mal porque si un usuario se
equivoca y me borra un cliente por error habré perdido todos sus pedidos.

Relacionado con esto está el tema de que quiero realizar una relación para
el caso en que puede existir nulos en la tabla dependiente pero no me deja.
Por ejemplo, FK_Cliente_DestinoPedido puede ser que un cliente ordene un
pedido pero no especifique un destino porque lo hará más tarde. En ese caso
el administrador corporativo me da error y no me deja crear la relación.

"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:

¿Qué es lo que no entiendes exactamente? El orden efectivamente


importa,
pero para poder crear la relación entre las tablas correctamente... Una


vez
que lo has hecho, simplemente hay que marcar la opción de borrado y/o
actualización en cascada y el motor de encarga de todo



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Jomaweb" escribió en el mensaje
news:
> ¿Exactamente cómo funciona el borrado y la actualización en cascada


cuando
> defino una relación en un diagrama?
> ¿importa el orden en que cojo los campos?
>
> gracias
>
>


Respuesta Responder a este mensaje
#3 Maxi
03/06/2004 - 16:41 | Informe spam
Hola, con el permiso de Carlos!! esto es asi y no tan asi!! si borras un
cliente y tenes delete en cascada y no tenes otro control (por ej triggers)
vas a tener problemas como lo mencionas bien vos.

Yo basicamente no uso esto, cuando quiero borrar en cascada en mi Store lo
hago o sea en mi entidad de negocios, pero hay otros que usan el Delete en
Cascada o el Update en Cascada!! son formas nomas, en este punto me gusta
tener el control a mi, sino vas a tener que poner algun trigger para que
ante un Delete haga algunas verificaciones y cancele la transaccion!!

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jomaweb" escribió en el mensaje
news:O%
Seré más concreto. Uso la herramienta de diagramas que viene en el
administrador corporativo.

Establecida una relación, activar "en cascada" ¿implica que se borran o
actualizan todos los registros dependientes?

Es que me encuentro que cuando creo una relación en el diagrama de BBDD de
SQL Server, siempre me lo hace correctamente, es decir, la relación "uno a
muchos" (llave a infinito) siempre me la coloca bien. Por lo cual no sé si
fiarme o es casualidad.

Tengo que suponer que para el caso FK_Clientes_Pedidos (llave sobre


Clientes
, infinito sobre pedidos) si borro un cliente automáticamente (sin otra
intervención por mi parte) ¿se borran todos sus pedidos?

Me viene bien y mal al mismo tiempo. Bien porque me ahorro lineas de
programacion en mi lógica de negocio, pero mal porque si un usuario se
equivoca y me borra un cliente por error habré perdido todos sus pedidos.

Relacionado con esto está el tema de que quiero realizar una relación para
el caso en que puede existir nulos en la tabla dependiente pero no me


deja.
Por ejemplo, FK_Cliente_DestinoPedido puede ser que un cliente ordene un
pedido pero no especifique un destino porque lo hará más tarde. En ese


caso
el administrador corporativo me da error y no me deja crear la relación.

"Carlos Sacristan" <csacristan ARROBA mvps.org> escribió en el mensaje
news:
>
> ¿Qué es lo que no entiendes exactamente? El orden efectivamente
importa,
> pero para poder crear la relación entre las tablas correctamente... Una
vez
> que lo has hecho, simplemente hay que marcar la opción de borrado y/o
> actualización en cascada y el motor de encarga de todo
>
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> Por favor, responder únicamente al foro
> Se agradece la inclusión de sentencias DDL
>
>
> "Jomaweb" escribió en el mensaje
> news:
> > ¿Exactamente cómo funciona el borrado y la actualización en cascada
cuando
> > defino una relación en un diagrama?
> > ¿importa el orden en que cojo los campos?
> >
> > gracias
> >
> >
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004
Respuesta Responder a este mensaje
#4 Jomaweb
03/06/2004 - 17:59 | Informe spam
¿qué tipo de problemas?

"Maxi" <escribió en el mensaje si borras un
cliente y tenes delete en cascada y no tenes otro control (por ej


triggers)
vas a tener problemas como lo mencionas bien vos.

Respuesta Responder a este mensaje
#5 Maxi
03/06/2004 - 18:03 | Informe spam
Si alguien hace un delete a tu tabla maestro va a borrar de forma en cascada
el resto!! el tema es si este tipo de cosas las queres controlar vos o que
lo defina el motor!!! ahi esta el kit de la cuestion!!

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jomaweb" escribió en el mensaje
news:
¿qué tipo de problemas?

"Maxi" <escribió en el mensaje si borras un
> cliente y tenes delete en cascada y no tenes otro control (por ej
triggers)
> vas a tener problemas como lo mencionas bien vos.
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida