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
Cascade su una singola tabella
martedì 16 gennaio 2007 - 16.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
melmar20
Profilo
| Junior Member
150
messaggi | Data Invio:
mar 16 gen 2007 - 16:54
Ciao a tutti vorrei fare il CASCADE su una singola tabella , sto utilizzando Microsoft SQL Server ma non me lo permette....
Ricapitolando io ho una colonna della mia tabella che fà riferimento alla chiave primaria della stessa tabella e vorrei che cancellando una tupla a cui fanno riferimento delle altre,queste vengano cancellate automaticamente...
Che posso fare?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 16 gen 2007 - 17:25
>Ciao a tutti
Ciao!
ti capito sempre io eh?
>vorrei fare il CASCADE su una singola tabella ,
>sto utilizzando Microsoft SQL Server ma non me lo permette....
dipende come vuoi ottenerla
>
>Ricapitolando io ho una colonna della mia tabella che fà riferimento
>alla chiave primaria della stessa tabella e vorrei che cancellando
>una tupla a cui fanno riferimento delle altre,queste vengano
>cancellate automaticamente...
dovresti progettare nel tuo database particolari relazioni e quindi creare foreign key indicando a sql server di cancellare a cascata tutte le tabelle figlie.
Il tutto dovrebbe essere fatto in fase di design del tuo database..
Alx81 =)
http://blogs.dotnethell.it/suxstellino
melmar20
Profilo
| Junior Member
150
messaggi | Data Invio:
mar 16 gen 2007 - 17:59
purtroppo non è proprio possibile utilizzare il CASCADE su una singola tabella....
in questo Thread:http: //www.dotnethell.it/forum/messages.aspx?ThreadID=13062 mi hanno consigliato di utilizzare un trigger,ma con quello che mi è stato suggerito io non riesco a cancellare i figli dei figli della mia tabella....
Avrei bisogno di una procedura di DRop che quando vado a cancellare un record mi vada a cancellare gli altri record che a questo fanno riferimento e ancora gli altri che fanno riferimento a quest'ultimi e così andando....
spero di essere stato chiaro
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 16 gen 2007 - 18:32
>purtroppo non è proprio possibile utilizzare il CASCADE su una
>singola tabella....
>in questo Thread:http: //www.dotnethell.it/forum/messages.aspx?ThreadID=13062
>mi hanno consigliato di utilizzare un trigger,ma con quello che
>mi è stato suggerito io non riesco a cancellare i figli dei figli
>della mia tabella....
>Avrei bisogno di una procedura di DRop che quando vado a cancellare
>un record mi vada a cancellare gli altri record che a questo
>fanno riferimento e ancora gli altri che fanno riferimento a
>quest'ultimi e così andando....
>
>spero di essere stato chiaro
confermo.. non è possibile fare il cascade sulla stessa tabella.
credevo volessi farla su più tabelle. Non avevo letto con attenzione.
Alx81 =)
http://blogs.dotnethell.it/suxstellino
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mar 16 gen 2007 - 21:18
>in questo Thread:http: //www.dotnethell.it/forum/messages.aspx?ThreadID=13062
>mi hanno consigliato di utilizzare un trigger,ma con quello che
>mi è stato suggerito io non riesco a cancellare i figli dei figli
>della mia tabella....
Si, verissimo, la soluzione basata sui trigger che ho postato non è ricorsiva.
Nel medesimo thread ho comunque proposto una soluzione per SQL Server 2005 che utilizza una CTE ricorsiva per eseguire la cancellazione.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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 !