Posto questo esempio di codice SQL :| perchè chiacchierando con un amico è emerso che la sintassi del "delete from from" è molto utile ma non molto conosciuta.
PROBLEMA: Devo cancellare i record della tabella "Tabella_A" che esistono nella tabella "Tabella_B" (testato su Sql Server 2008).
Se la chiave di relazione fra le due tabelle è solo una posso risolverla molto velocemente così:
DELETE
FROM Tabella_A
WHERE Chiave IN
( SELECT Chiave FROM Tabella_B WHERE Tabella_A.Chiave = Tabella_B.Chiave )
Se le chiavi di relazione sono due o più:
DELETE
FROM Tabella_A
FROM Tabella_A A INNER JOIN Tabella_B B ON A.Chiave = B.Chiave
In generale la parte in bold è il subset di dati che mi dice quali record dovrò cancellare dalla tabella in Italic.
So che questo può sembrare un post "del piffero" ma delle volte può risultare utile!
Riccardo.
posted @ venerdì 13 giugno 2008 19:45