Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Gestion de Datos][Aporte] Final 14/02/2012
Autor Mensaje
LeandroG Sin conexión
Militante
Ingeniero en Sistemas
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 78
Agradecimientos dados: 69
Agradecimientos: 64 en 16 posts
Registro en: Feb 2011
Mensaje: #16
RE: [Gestion de Datos][Aporte] Final 14/02/2012
(23-02-2012 22:44)fedevega escribió:  Buenas gente, por el último punto, yo uso T-SQL e implementaría una FK que tenga ON DELETE CASCADE de la siguiente manera:

alter table Det_fact
add constraint FK_DetFact_nFact
foreign key(n_fact) references Cab_fact(n_fact)
on delete cascade;

Y con esto le peleo a muerte que usé el Objeto de BD "Foreign Key".

Alguno fue a rendir este examen? surgió alguna discusión por esto?

Saludos !!

Fede.-

Fede, haciendo esto quedarian 2 constrain FK, una sin el delete cascade, y otra con, igual funciona por lo que probe.. cuando borras, se borra todo, pero afectara en algo? mmm
Lo ideal creo que seria hacer un drop de la vieja, no?

Saludos
27-02-2015 20:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #17
RE: [Gestion de Datos][Aporte] Final 14/02/2012
a mi se me ocurrió más facil con un trigger

CREATE TRIGGER ON CAB_FACT
AFTER DELETE
AS
BEGIN

DECLARE @N_FACT_A_BORRAR INT
SET @N_FACT_A_BORRAR = (SELECT N_FACT FROM DELETED)

DELETE FROM DET_FACT WHERE N_FACT = @N_FACT_A_BORRAR

END


aviso que no lo probé pero creo que funciona


saludos
(Este mensaje fue modificado por última vez en: 27-02-2015 21:32 por Nacho14.)
27-02-2015 21:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
hiderocks Sin conexión
Empleado de Fotocopiadora
.....
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 26
Agradecimientos dados: 7
Agradecimientos: 13 en 4 posts
Registro en: Feb 2009
Mensaje: #18
RE: [Gestion de Datos][Aporte] Final 14/02/2012
(27-02-2015 21:31)Nacho14 escribió:  CREATE TRIGGER ON CAB_FACT
AFTER DELETE
AS
BEGIN

DECLARE @N_FACT_A_BORRAR INT
SET @N_FACT_A_BORRAR = (SELECT N_FACT FROM DELETED)

DELETE FROM DET_FACT WHERE N_FACT = @N_FACT_A_BORRAR

END

La implementación del trigger está bien, pero hay que tener en cuenta que en el caso de existir una FOREIGN KEY en Det_fact que referencia a Cab_Fact (como la que se plantea en el diagrama de entidades, mediante el "(fk)"), el DELETE sobre Cab_Fact que se requiere para disparar el trigger nunca podría ejecutarse. (Esto lo digo después de haberlo probado).

O sea, si nos ponemos quisquillosos, si o si tenés que plantear el hacer drop al FOREIGN KEY que ellos nos dan, alterando la tabla, y después elegís el camino que más te guste. Aunque, si tenés que alterar la tabla, ya seguí por ahí y hacé el FK de nuevo con un ON CASCADE DELETE y listo.
01-03-2015 14:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #19
RE: [Gestion de Datos][Aporte] Final 14/02/2012
(01-03-2015 14:43)hiderocks escribió:  
(27-02-2015 21:31)Nacho14 escribió:  CREATE TRIGGER ON CAB_FACT
AFTER DELETE
AS
BEGIN

DECLARE @N_FACT_A_BORRAR INT
SET @N_FACT_A_BORRAR = (SELECT N_FACT FROM DELETED)

DELETE FROM DET_FACT WHERE N_FACT = @N_FACT_A_BORRAR

END

La implementación del trigger está bien, pero hay que tener en cuenta que en el caso de existir una FOREIGN KEY en Det_fact que referencia a Cab_Fact (como la que se plantea en el diagrama de entidades, mediante el "(fk)"), el DELETE sobre Cab_Fact que se requiere para disparar el trigger nunca podría ejecutarse. (Esto lo digo después de haberlo probado).

O sea, si nos ponemos quisquillosos, si o si tenés que plantear el hacer drop al FOREIGN KEY que ellos nos dan, alterando la tabla, y después elegís el camino que más te guste. Aunque, si tenés que alterar la tabla, ya seguí por ahí y hacé el FK de nuevo con un ON CASCADE DELETE y listo.

ahi corregí el trigger con lo que estaba mal, este sí creo que funciona, ahora lo pruebo y aviso.

CREATE TRIGGER borradoCascada ON CAB_FACT
INSTEAD OF DELETE
AS
BEGIN

DECLARE @N_FACT_A_BORRAR INT
SET @N_FACT_A_BORRAR = (SELECT N_FACT FROM DELETED)

DELETE FROM DET_FACT WHERE N_FACT = @N_FACT_A_BORRAR
DELETE FROM CAB_FACT WHERE N_FACT = @N_FACT_A_BORRAR

END


-------------------------
probado, funciona perfecto !
(Este mensaje fue modificado por última vez en: 01-03-2015 16:13 por Nacho14.)
01-03-2015 15:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Nacho14 recibio 1 Gracias por este post
CarooLina (08-02-2018)
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.380
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #20
RE: [Gestion de Datos][Aporte] Final 14/02/2012
Consulta re tonta. En los V o F solo hay que indicar si es uno u otro. O también hay que justificar el por qué de la respuesta?.

[Imagen: jQJfyBGh9SOmZ.png]
01-03-2015 18:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #21
RE: [Gestion de Datos][Aporte] Final 14/02/2012
(01-03-2015 18:00)Martin. escribió:  Consulta re tonta. En los V o F solo hay que indicar si es uno u otro. O también hay que justificar el por qué de la respuesta?.

Por lo que vi depende de la fecha, algunos finales son con justificación y otros son jugartela entre V o F pero en este ultimo caso si está mal la respuesta te resta un punto.
01-03-2015 18:07
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 11 invitado(s)