81 messaggi dal 03 giugno 2001
Ciao a tutti,
ho la necessita cancellando i record in una tabella di cancellare piu occorrenze in un'altra legati dallo stesso id e a cascata ancora altri record su un'latra tabella...
ho pensato che un trigger mi risolverebbe molte query in asp, credo anche con un'ottimizzazzione dei tempi,....
ho iniziato con qualcosa del genere:


ALTER TRIGGER TR_DELETECONRESSO
ON TBCongresso
FOR DELETE
AS

DELETE FROM TBArea where id_congresso=ID_CHE_STO_CANCELLANDO


e vi chiedevo questo ID_CHE_STO_CANCELLANDO come faccio a passarlo alle delete a cascata...
oppure... chiedevo se se c'è qualche esempio dove dare un'okkiata visto che mi sto scervellando....

grazie e buona serata
Giuseppe

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
All'interno dei trigger sono accessibili delle pseudo-tabelle chiamate INSERTED e DELETED che contengono, rispettivamente, i record che stanno per essere inseriti nella tabella e quelli che stanno per essere cancellati (in caso di update hai entrambe le tabelle).
Utilizzando pertanto la pseudotabella DELETED puoi costruire il corpo del trigger in maniera simile a

DELETE TBArea
WHERE id_congresso IN (SELECT id_che_stai_cancellando FROM DELETED)

Fai attenzione al fatto che gli "id_che_stai_cancellando" possono essere più di uno visto che qualunque istruzione può coinvolgere un solo record ma può anche coinvolgerne n. L'istruzione che ti ho proposto va bene in entrambe le circostanze.

Oltre a questa possibilità basata sul trigger puoi definire l'integrità referenziale a cascata, ovvero nelle proprietà della foreign key puoi decidere le azioni da intraprendere nel caso in cui vengano aggiornati o cancellati i campi coinvolti dalla fk.

Bye
81 messaggi dal 03 giugno 2001
Grazie Luca
ci provo....

buon week end
giuseppe

------------------------------------
"Nella vita non si è mai fermi o si va avanti o... si va indietro"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.