Store procedure sqlServer 2005(ciclo while con select e update)

lunedì 12 gennaio 2009 - 17.46

valerik Profilo | Junior Member

Ciao a tutti,
dovrei, in una stored procedure, prima fare una select per prendere i dati che mi servono, e per ogni record ritornato, dovrei fare un update.Come potrei fare.
Io avevo cominciato a fare una cosa del genere(naturalmente sbagliata):

ALTER PROCEDURE [dbo].[sqlSpunt]
@giorno nvarchar(20) = 0,
@titolare nvarchar(50) = 0,
@num_aut nvarchar(200) = 0,
@com_rilascio nvarchar(200) = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @loopCount int;
SET @loopCount=1;
WHILE(@loopCount<=100)
BEGIN
SELECT @giorno = giorno, @titolare = titolare, @num_aut = num_autorizzazione, com_rilascio from eM_spuntisti where nuovo = 0 AND rifiuto = 0 AND assegnato = 1
UPDATE eM_graduatorie SET presenze = presenze + 1 WHERE giorno =@giorno AND titolare=@titolare AND num_autorizzazione =@num_aut AND com_rilascio=@com_rilascio
END
SET @loopCount=@loopCount+1
END


Dovrei scorrere i valori della select e per ogni valore fare UPDATE.
Potete aiutarmi.
Grazie


valerik

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>dovrei, in una stored procedure, prima fare una select per prendere
>i dati che mi servono, e per ogni record ritornato, dovrei fare
>un update.
Quello che ti consiglio è di abbandonare questo tipo di approccio. Non userei SQL Server in questo modo (come un application server) e quindi preferirei abbandonare la soluzione del ciclo nella stored procedure.
Non capisco però dal tuo esempio cosa vuoi ottenere. A me sembra che quel ciclo non faccia altro che fare tante inutili update per poi arrivare ad un solo record finale aggiornato più volte in cui avrai il campo presenze = <presenze iniziali> + 100..
Prova a spiegare meglio quello che vuoi ottenere..

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5