20. januar 2006 - 13:51Der er
2 kommentarer og 3 løsninger
fange en exception
Min (@@FETCH_STATUS = 0 )løkke break'er fordi jeg får denne fejl.....
Server: Msg 1785, Level 16, State 1, Line 1 Introducing FOREIGN KEY constraint 'FK_Tabel2_Tabel3' on table 'Tabel2' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Er der mulighed for at man kan fange denne fejl sådan at løkken kan køre videre ? eks.
while (@@FETCH_STATUS = 0){ If(Error) Gør dettte ELSE gør dette istedet kør videre }
Problemet er jo at løkken break'er fordi status <> 0.... Kan man gøre noget andet
Med kunstig intelligens skaber HP’s nye OmniBook X 14 en unik og skræddersyet brugeroplevelse målrettet dem, der ønsker høj ydeevne og intelligente funktioner
Det er fordi du bruger cascading deletes/updates. Du skal kun oprette dem hvor de virkelig behøves, ligesom du muligvis har overdrevet med foreign keys.
Hvis du nu fjerner alle cascading deletes/updates, så er fejlen væk. Derefter kan du oprette dem igen, og se hvornår fejlen kommer.
jeps det er det jeg gør... Der er 90 tabeller og jeg prøver at sætte flueben i Cascade ved hjælp af en løkke.... Der er lidt snask i foreign keys.....Men de må ikke rettes...
DVS det bedste er bare at lave en selct som sortere de tabeller fra som fejler og så bruge den select til min Cursor?
Jeg forstår ikke rigtig problemet? Hvorfor sætter du flueben i cascade ved hjælp af en løkke? Og mener du at du vil vælge cascading delete/update for hver eneste foreign key?
Så kan du komme ud for at tingene går i ring. At en update eller delete forplanter sig gennem systemet på en uventet måde.
Foreign keys må gerne rettes, hvis de er sat forkert. Du skal lave dem efter behov, for at opfylde et formål i forhold til data-integritet, og som en ekstra feature kan du i særlige tilfælde bruge cascading deletes/updates. Der er mange der laver foreign keys overalt, måske fordi det giver sådan nogle flotte streger i diagrammerne.
Foreign keys har også en betydning for performance, men samme formål kan opnås ved at oprette almindelige indexer.
PS: 90 tabeller er ikke så mange at man ikke kan gennemgå dem manuelt, og hvis du gør det, vil du sikkert finde ud af hvor fejlen ligger.
Har tænkt mig at sætte flueben manuelt.... Det andet kan ikke lade sig gøre fordi, som du siger, tingene går i ring... Jeg havde brugt en løkke fordi at så kunne jeg bruge det samme script til en anden database.... HVor den selv gk ind og fandt de tabeller der var i databasen ved en system.object select
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.