Avatar billede misbruger Nybegynder
18. oktober 2004 - 10:23 Der er 1 løsning

SP - Loop igennem records og opdater dem

Jeg skal lave en stored procedure, hvori jeg først skal hente nogle poster fra en tabel, for efterfølgende at loope igennem dem og opdatere dem....

Jeg vil gerne ligge det hele i en stored procedure, for at spare kræfter på at sende data frem og tilbage.

Så noget lign...

SELECT CNL.[Id] FROM Channel CNL WHERE CNL.User = @User ORDER BY SortIndex

DECLARE @Count int
Set @Count = 1

While (Poster i ovenstående SQL)
BEGIN
UPDATE Channel SET SortIndex = @Count WHERE [Id] = @IdFraOvenstående
Set @Count = Count + 1
END

Så det endelige resultat er at Channel.SortIndex er et forløbende nummer.

Er der nogen der kan hjælpe mig med at gøre denne SP korrekt

Thanx!
Avatar billede misbruger Nybegynder
18. oktober 2004 - 10:45 #1
Fandt selv ud af det.... :D

CREATE procedure sp_UpdateSortIndex

    @User int

AS

BEGIN
    SET NOCOUNT ON

    DECLARE @CnlId int
    DECLARE @Count int
    Set @Count = 1

    DECLARE Cursor1 CURSOR FOR
    SELECT CNL.[Id] FROM Channel CNL WHERE CNL.User = @User ORDER BY SortIndex

    OPEN Cursor1

    FETCH NEXT FROM Cursor1
    INTO @CnlId

    WHILE @@FETCH_STATUS = 0
    BEGIN

        UPDATE Channel SET SortIndex = @Count WHERE [Id] = @CnlId

    FETCH NEXT FROM Cursor1
    INTO @CnlId
    Set @Count = @Count + 1

    END

    CLOSE Cursor1
    DEALLOCATE Cursor1

END
GO
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