webForumDet fria alternativet

Cascading deletes ..

2 svar · 254 visningar · startad av Stuck

StuckMedlem sedan juli 200072 inlägg
#1

Tjaa .. jag har läst om en funktion i MS SQL 2k som gör att man kan typ deleta ett record i en tabell med en primarykey och sen deletar den även alla records som har en matchande foregien key .. nåt som vet hur detta fungerar .. är det typ bara att köra en ett delete kommando på den som har primary key och sen tar den bort alla som har samma foregien keys .. eller behöver man köra nåt specielt kommando .. nån som vet nåt sätt att typ testa detta så att man vet vad den kommer att delete för nåt .. =) .. många frågor där

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det man gör är att när man definierar en foreign key så kan man lägga till en on delete klausul


    create table pk(pkC char(12) primary key)

    create table fk(pkC int primary key,
                    fkC char(12) references pk on delete cascade)

Det innebär att om man tar bor poster från pk så tas de poster i fk som matchar det borttagna värdet också bort. Det finns även ytterligare alternativ än cascade.

Man kan ange en on update klausul med motsvarande innebörd.

Denna funktion är inget specifikt för MS SQL server utan den finns i SQL-standarden.

------------------
essentitia preter non sans multiplicandum

StuckMedlem sedan juli 200072 inlägg
#3

Ahh .. ok .. jag vågade testa och det verkade funka .. jag ställde dock in relationerna i EM ... jaja .. funktionen fanns inte i SQL 7 tror jag .. inte dokumenterat iallfall .. hmm

128 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)