24. oktober 2006 - 10:29Der er
2 kommentarer og 2 løsninger
Automatisk beregning af værdier
Jeg har en database kørende i Microsoft SQL og har brug for at beregne værdier af nogle felter baseret på værdierne af nogle andre. Selve beregningen kan jeg godt finde ud af, men hvor i Enterprise Manager sætter jeg den op til automatisk at lave beregningerne f.eks. en gang i døgnet?
Hvis det ikke er alt for komplicerede beregninger, hvorfor så ikke lave det som et Calculated felt i tabellen? Så er de beregnede værdier altid up to date.
Der er et par forskellige måder at løse det scenarie på. Det kommer lidt an på de data du beregner feltet udfra, har de en stor udskiftning = meget dynamiske.. altså opdateres de ofte eller er de rimelig statiske.
Hvis de er dynamiske kan det anbefales at lave beregningen vha. et computed field. Hvis de er statiske kan det anbefales at lave beregningen samtidigt med at rækken indsættes i tabellen, en anden mulighed er at opdatere feltet vha. en procedure der løber tabellen igennem. Den mulighed vil give ekstra administration, fordi hvis nu der opdateres eller indsættes løbende skal beregningen laves igen og du skal holde styr på hvor du kom til sidste gang du beregnede værdien (medmindre du bare beregner alle rækkerne i tabellen igen) Sluttelig vil jeg også nævne brugen af triggers til den slags, det kunne være ret oplagt, men afhænger lidt af dig, idet det måske er en anelse sværere at få fat i :-)
Vil du kunne søge på den beregne værdi? Kunne det være en mulighed at beregne værdien når du udtrækker rækken?
For at lave et computed field igennem Enterprise Manager klikker på på tabellen og vælger Design, marker det felt du ønsker beregnet og sæt formlen ind under Formula nederst i det designvindue.
Hvis du ønsker at lade en procedure rende din tabel igennem på nogle bestemte tidspunkter kan du opsætte et job til det. Under serveren til venstre skal du kigge efter en mappe der hedder Management, herunder er der en SQL Server Agent og til sidst kan du så vælge Jobs og opsætte din procedure til at opdatere felterne.
Hvis du ønsker en trigger siger du bare til :-)
Synes godt om
Ny brugerNybegynder
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.