Avatar billede teleskop Nybegynder
26. november 2007 - 11:51 Der er 5 kommentarer

update temp table

Hej,

jeg har lavet en temp table med 5 felter, hvor jeg starter med at udfylde tre af felterne.

Herefter vil jeg gerne udfylde de sidste to felter i min temp tabel, men hvordan loop jeg igennem min temp tabel og laver en update?
Avatar billede janus_007 Nybegynder
26. november 2007 - 13:47 #1
Hvad vil du gerne have skal stå på de 2 andre?
Og hvad har du i de 3 andre? Er det en beregning du vil have i de 2 andre?
Avatar billede teleskop Nybegynder
26. november 2007 - 14:45 #2
Jeg har følgende i min SP, hvor jeg først opretter en temp tabel og derefter indsætter væredier på 3 felter i temp tabellen. Efterfølgende vil jeg så godt updatere min temp tabel med data fra en anden tabel. Og der er så her jeg er lidt i tvivl om hvordan jeg opdatere min temp tabel?


DECLARE @Temp TABLE (felt1 INT,
        felt2 VARCHAR(20),
        felt3 VARCHAR(60),
        felt4 VARCHAR(20),
        felt5 TEXT
        )


    INSERT INTO @Temp (felt1, felt2, felt3) 
    SELECT a,b,c FROM [tabel] WHERE  id = @id
Avatar billede janus_007 Nybegynder
26. november 2007 - 19:21 #3
ahh okay...

Så skal du lave et update join

update @Temp set felt4 = a.mytable from @Temp
inner join mytable a
on a.id = @Temp.id
Avatar billede teleskop Nybegynder
27. november 2007 - 11:25 #4
hmm ja det driller mig sgu lidt, og umiddelbart synes jeg også det er en underlig måde at join en temp tabel sammen med en anden tabel. Men det er praksis?

Her er min SP ( håber det giver mening ). Har jeg joinet rigtigt?:

    DECLARE @Temp TABLE (
    UserID INT,
    UserName VARCHAR(20),
    HeaderImage VARCHAR(60),
    UserProfileURL VARCHAR(20),
    UserProfileBody TEXT,
    LanguageID INT
    )

        '#### INSERT #####
    INSERT INTO @Temp (UserID, UserName, HeaderImage, UserProfileURL) 
    SELECT
    [User].UserID,
    [User].UserName,
    [User].HeaderImage,
    [User].UserProfileURL
    FROM
    [User]
    WHERE
    [User].UserProfileURL = @UserProfileURL

        '#### UPDATE ####
    UPDATE @Temp SET UserProfileBody = UserData.UserProfileBody, LanguageID = UserData.LanguageID FROM @Temp
    INNER JOIN UserData ON UserData.UserID = @Temp.UserID
Avatar billede teleskop Nybegynder
27. november 2007 - 13:36 #5
Jeg har fundet ud af det. Smart :)

Jeg fandt noget mere om det her: http://www.bennadel.com/blog/739-Updating-In-Memory-Temporary-SQL-Tables-With-UPDATE-DELETE-Clauses.htm

Men tak for hjælpen Janus_007, og smider du et 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