Avatar billede hankster Nybegynder
05. november 2001 - 12:22 Der er 5 kommentarer og
2 løsninger

Trigger på delete

Jeg skal lave en delete trigger, som skal slette kundens bestillinger, når jeg sletter kunden, men kundens bestillinger har en constraint \"link\" til kunden, og derfor vil kunden ikke blive slettes, med mindre jeg har slettet bestillingerne først.

Mit problem er at triggeren først bliver udført EFTER at den forsøger at slette kunden.

Hvad gør jeg?
Avatar billede bennytordrup Nybegynder
05. november 2001 - 12:24 #1
Kan du bruge en stored procedure til at foretage sletningen. Parameter kundeID
Avatar billede hankster Nybegynder
05. november 2001 - 12:24 #2
note: Jeg bruger MS SQL Version 6.5
Avatar billede bennytordrup Nybegynder
05. november 2001 - 12:25 #3
Hvis du kan, så kan du kode den til at slette bestillingerne først.
Avatar billede hankster Nybegynder
05. november 2001 - 12:25 #4
Jeg kan godt lave det samme i en stored procedure, men her skal det gøres i en trigger.
Avatar billede bennytordrup Nybegynder
05. november 2001 - 12:28 #5
På en SQL Server findes der noget, som hedder INSTEAD OF DELETE trigger. Jeg ved ikke, om noget tilsvarende findes på ver 6.5

Fra Books Online:

INSTEAD OF DELETE triggers can be defined on a view or table to replace the standard action of the DELETE statement.
Avatar billede torbenkoch Nybegynder
05. november 2001 - 13:02 #6
Det er kun i SQL 2000 der findes INSTEAD OF triggers. Desværre...

Ovenstående problemstilling kan kun løses, hvis du på en eller anden måde sørger for at slette bestillingerne først - enten manuelt (med en DELETE...) eller via en stored procedure, som tager sig af det hele.

Du kan selvfølgelig også fjerne den constraint der er fra bestillinger til kunde.
Avatar billede tmceu Praktikant
05. november 2001 - 15:41 #7
Ja, havde du dog bare 2000, så kunne do jo også bruge \"Cascading Referential Integrity Constraints\" :-)

Du er ude i en Mission Impossible med din nuværende konfiguration, og så hjælper det ikke at du skriver det SKAL gøres i en trigger.

Du har kun 2 muligheder; lav det om til en stored procedure, eller fjern din constraint som torben foreslår.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester