Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Stored procedure
venerdì 14 gennaio 2005 - 13.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
ven 14 gen 2005 - 13:05
Ciao a tutti devo creare una transazione che contiene tre stored procedure in sql di eliminazione da tre tabelle di un database. Le tre tabelle sono SCHEDA, SEZIONE, CAMPO, e sono così relazionate: ogni tupla di SEZIONE ha come chiave esterna IDScheda che indica la scheda a cui appartiene la sezione; ogni tupla di CAMPO ha come chiave esterna IDSezione che indica la sezione a cui appartiene il campo. Il problema è questo: se si elimina una scheda, bisogna prima eliminare tutte le sezioni che vi fanno parte, e per ogni sezione tutti i campi che vi fanno parte. Se io conosco l'id della scheda da eliminare io scrivo
delete from SCHEDA where IDScheda='5'
poi per eliminare le sezioni che vi fanno parte scrivo
delete from SEZIONE where IDScheda='5'
e metto le due istruzioni tra
begin transaction
e
commit transaction
e tutto va bene.
Ma come faccio, man mano(già penso ad un ciclo) che elimini una sezione, a prelevare l'id di quella sezione(idsezioneeliminato), che poi mi serve per fare
delete from CAMPO where IDSezione=idsezioneeliminato
????
Mi potete aiutare?Nn so come andare avanti. Grazie mille
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 16 gen 2005 - 12:26
Puoi creare dei trigger di Delete.
Quando cancelli viene creata una vista virtuale chiamata deleted (o updated o inserted) dove puoi accedere ai record eliminati e leggere le informazioni.
Quindi puoi fare select * from deleted
e poi ti leggi i valori.
Oppure più semplicemente se hai creato bene il database e creato le relazioni puoi creare delle DELETE a Cascade in modo che quando cancelli il record padre i figli sono automaticamente cancellati.
ciao
david
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 17 gen 2005 - 12:59
Ciao prima di tutto grazie; cmq sul database nn ti posso assicurare nulla poichè nn l'ho creato io, quindi prendo in considerazione la prima via; ma siccome nn sono esperta di sql, nn so come creare dei trigger di Delete. Mi potresti spiegare? Inoltre come faccio ad accedere alla vista virtuale chiamata deleted (o updated o inserted) ? Ti ringrazio tanto.
mon78
Profilo
| Junior Member
167
messaggi | Data Invio:
lun 17 gen 2005 - 12:59
Ciao prima di tutto grazie; cmq sul database nn ti posso assicurare nulla poichè nn l'ho creato io, quindi prendo in considerazione la prima via; ma siccome nn sono esperta di sql, nn so come creare dei trigger di Delete. Mi potresti spiegare? Inoltre come faccio ad accedere alla vista virtuale chiamata deleted (o updated o inserted) ? Ti ringrazio tanto.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 23 gen 2005 - 11:18
select * from deleted
select * from inserted
select * from updated
Ma solo all'interno chiaramente di un Trigger di Delete, Insert o Update.
Nella documentazione di SQL Server trovi tutto.
ciao
david
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !