Avatar billede peterlang Nybegynder
14. april 2002 - 18:06 Der er 10 kommentarer og
1 løsning

Stored procedures INSERT/UPDATE

Hvordan laver man en SP der man modtage nogle parameter (varenr, navn), checke om varenummeret findes...
hvis ja (Update)
hvis nej (Insert)

Peter Lang
Avatar billede a1a1 Novice
14. april 2002 - 18:15 #1
er det fremgangsmåden eller søger du en komplet sp?
Avatar billede peterlang Nybegynder
14. april 2002 - 18:18 #2
Jeg kunne godt tænke mig at se hvordan sådan en kode kunne se ud.
Avatar billede a1a1 Novice
14. april 2002 - 18:24 #3
det er ikke bare lige men jeg kan give dig en ide :)
Avatar billede a1a1 Novice
14. april 2002 - 18:31 #4
lav en sp men x antal inputparametre (fx. varenr,navn,pris)

i din sp skal du lave et "recordset" ala
@mID er dit vare nr (inputparameter)

DECLARE tCursor CURSOR For
SELECT ID, sVarenr, sVarenavn, iPris FROM tabel WHERE sVarenr = @mID
OPEN tCursor
FETCH NEXT FROM tCursor
INTO @vID, @mID, @sVarenavn, @iPris
IF @@FETCH_STATUS = 0
(hvis vare er der)
BEGIN
UPDATE tabel SET sVarenavn = @inputvarenavn, iPris = @inputvarepris WHERE sVarenr = @mID
END
ELSE
BEGIN
INSERT INTO tabel (sVarenr,sVarenavn,iPris) VALUES (@mID,@inputvarenavn,@inputvarepris)
END

:)
Avatar billede peterlang Nybegynder
14. april 2002 - 18:38 #5
tak for koden. hvad bruges CURSOR til?

Jeg sider selv og leger med en kode, men har ikke prøvet den endnu..

IF EXISTS(SELECT * FROM vare WHERE varenr = @varenr)
BEGIN
    UPDATE...
END
ELSE
BEGIN
    INSERT INTO ....
END

Kan det gøres sådan?

Peter Lang
Avatar billede a1a1 Novice
14. april 2002 - 18:39 #6
CURSOR kan du sammenligne med et recordset
Avatar billede a1a1 Novice
14. april 2002 - 18:40 #7
jeg ved ikke lige om du kan på den måde men prøv :)
Avatar billede peterlang Nybegynder
14. april 2002 - 18:43 #8
Tak for hjælpen, så har jeg lidt at arbejde med.

Peter Lang
Avatar billede a1a1 Novice
14. april 2002 - 18:48 #9
:)

det er lidt kryptisk det dersens TSQL :)

tak for pointser
Avatar billede ocp Nybegynder
14. april 2002 - 23:22 #10
Jeg mener klar at dit eget kodeeksempel er det mest korrekte - der er ingen grund til at bruge en cursor. Det vil være rent ressourcespild.
Avatar billede peterlang Nybegynder
15. april 2002 - 01:24 #11
Tak

Lige for at afslutte...

Jeg endte også med at bruge min egen kode. (den virket)
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