Som svar på skriblerier nedfældet af Trine Banke Brenneche :
> Ud fra sangid'et findes deltagerid på alle de personer, der deltager i
> sangen i forholds-tabellen.
> Så slettes alle forekomster af sangid'et i forholdstabellen.
Du kan flytte data over i en temp table før sletning
-- Opret ny temp table
SELECT * FROM Forhold INTO #tmpForhold WHERE 1=2
-- Overfør data
INSERT INTO #tmpForhold
SELECT * FROM Forhold INTO #tmpForhold WHERE DeltagerID IN (
SELECT F.DeltagerID From Forhold F WHERE F.SangID = 10
)
-- Slet data
DELETE * FROM Forhold WHERE WHERE DeltagerID IN (
SELECT F.DeltagerID From Forhold F WHERE F.SangID = 10
)
> Herefter tjeckes, om der stadig er forekomster i forholdstabellen,
> hvor de før fundne deltagerid indgår i.
-- Hvis ingen forekomster
IF NOT EXISTS (
SELECT F.DeltagerID From Forhold F WHERE F.DeltagerID IN (
SELECT F.DeltagerID FROM #tmpForhold
)
)
> Hvis der IKKE er, slettes deltageren fra deltager-tabellen.
-- Slet data
DELETE FROM Deltager WHERE DeltagerID IN (
SELECT F.DeltagerID FROM #tmpForhold
)
-- housekeeping
DROP TABLE #tmpForhold
Det er MSSQL/T-SQL syntaks
Du kan evt bruge det som inpiration
Med forbehold for typos og dårlig hukommelse
mvh/Peter Lykkegaard