Avatar billede joemoz Nybegynder
24. oktober 2006 - 10:29 Der 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?
Avatar billede dr_chaos Nybegynder
24. oktober 2006 - 10:31 #1
under sql server agent kan du lave et job som eksekverer en stored procdure efter et skema.
Avatar billede bennytordrup Nybegynder
24. oktober 2006 - 10:31 #2
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.
Avatar billede dr_chaos Nybegynder
24. oktober 2006 - 10:32 #3
sql server agent findes under management
Avatar billede janus_007 Nybegynder
24. oktober 2006 - 12:09 #4
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 :-)
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