Avatar billede janemil Nybegynder
13. november 2006 - 16:00 Der er 3 kommentarer og
1 løsning

Stored procedure, hvis select tom then insert

SELECT packeteer_id
    FROM net_packeteer
    WHERE device_id = @device_id

Hvis denne select er tom vil jeg gerne lave dette
    INSERT INTO net_packeteer(device_id)
    VALUES(@device_id)
Og så bagefter lave igen
SELECT packeteer_id
    FROM net_packeteer
    WHERE device_id = @device_id

Hvordan fanger jeg om selecten er tom, så det andet kan udføres?
Synes ikke helt jeg kan få det til at virke.


CREATE    PROCEDURE md_packeteerSelProc
(    @device_id        [id],
    @user_id        [id])
AS
BEGIN
    IF dbo.accessDevice(@user_id, @device_id) = 0 BEGIN   
        RAISERROR  50000 'md_packeteerSelProc: User do not have access to that device.'
        RETURN(1)
    END
    SELECT packeteer_id
    FROM net_packeteer
    WHERE device_id = @device_id
    RETURN(0)

END
GO
Avatar billede lorentsnv Nybegynder
13. november 2006 - 16:33 #1
Jeg vil tro du kan lave det på følgende måde:

Declare @Test as int

SELECT @Test = packeteer_id
    FROM net_packeteer
    WHERE device_id = @device_id

If @Test IS NULL THEN
BEGIN
    INSERT INTO net_packeteer(device_id)
    VALUES(@device_id)
END

SELECT packeteer_id
    FROM net_packeteer
    WHERE device_id = @device_id
Avatar billede arne_v Ekspert
14. november 2006 - 01:37 #2
variant

IF NOT EXISTS(SELECT ...)
BEGIN
    INSERT ...
END
SELECT ...
Avatar billede janemil Nybegynder
14. november 2006 - 10:18 #3
Takker for jeres fine forslag. Gider ikke ligge svar for point?
Avatar billede lorentsnv Nybegynder
14. november 2006 - 11:24 #4
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