Avatar billede Lasse Novice
18. maj 2006 - 21:51 Der er 4 kommentarer og
1 løsning

Update ved brug af ikke built in funktion

Jeg har en insert trigger paa tabel "t" der fyres af ved insert. Jeg skal have opdateret en kolonne "t.tColumn5" ved insert. Jeg har derfor lavet en funktion "getFunction1" der konstruerer vaerdien til "t.tColumn5". Idet tabellen inserted godt kan indeholde mere end een raekke er mit foerste bud:

UPDATE t
SET tColumn5 = getFunction1(t.tColumn1, r.rColumn2)
FROM t inner join inserted tInserted on t.tColumn3 = tInserted.tColumn3 inner join r on r.rColumn5 = t.tColumn5

Det kan dog ikke lade sig goere da den siger at function1 ikke er en built-in function.

Hvad kan jeg ellers goere, hvis jeg IKKE oensker at bruge langsomme cursors?
Avatar billede ldanielsen Nybegynder
18. maj 2006 - 22:04 #1
Hvis du laver en function, så bliver den kaldt én gang for hver enkelt række. Jeg tror hurtigt at det bliver tungere end at lave en cursor.
Avatar billede ldanielsen Nybegynder
18. maj 2006 - 22:12 #2
Men du skulle nu nok kunne bruge en function i en trigger, har lige prøvet det og det går fint ...

Jeg har MSSQL 2000
Avatar billede ldanielsen Nybegynder
18. maj 2006 - 22:13 #3
Husk at adressere funktionen med dbo.functionName, du skal (som altid) minimum have owner med.
Avatar billede Lasse Novice
18. maj 2006 - 22:20 #4
minimum have owner med.>>

ahh, tosse mig... ja det er sandt.

svar => point
Avatar billede ldanielsen Nybegynder
19. maj 2006 - 09:20 #5
Svar
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