Incrementare un valore numerico

giovedì 23 aprile 2009 - 14.32

perla0279 Profilo | Senior Member

Ciao

uso sql 2005.
Devo incrementare un campo con un valore numerico:
1,2,3,4,5,6,...........


Ho scritto:
BEGIN
declare @pln as int
declare @fixel as int
declare @position_id as nvarchar (50)
DECLARE @i int
SET @i = 1

DECLARE cursScaff CURSOR FOR

SELECT PLN_ID , fixel_id , position_id FROM position where pln_id = 202
OPEN cursScaff
FETCH cursScaff into @PLN , @fixel, @position_id
WHILE @@FETCH_STATUS > -1


update position set location_id = @i where PLN_ID = @PLN and fixel_id = @fixel and position_id = @position_id

set @i = @i + 1

FETCH cursScaff into @PLN , @fixel, @position_id


CLOSE cursScaff
DEALLOCATE cursScaff
END

ma non funziona ...........

alx_81 Profilo | Guru

>Ciao
Ciao!

>ma non funziona ...........
io abbandonerei la soluzione a cursori, usando le funzionalità di SQL Server 2005, come ad esempio la ROW_NUMBER.
Osserva il seguente esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Non conoscendo di preciso la tua tabella e i tuoi dati ho creato una, spero, simile.
Nella soluzione uso le CTE (common table expressions)
http://msdn.microsoft.com/en-us/library/ms190766.aspx

e la ROW_NUMBER()
http://msdn.microsoft.com/it-it/library/ms186734.aspx

Spero che l'esempio possa esserti di aiuto.

--

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

perla0279 Profilo | Senior Member

cacchiarola ......................

ero convinta fosse un server 2005 - come tutti gli altri che usiamo

Invece è l'unico 2000,
e la funzione che mi hai mandato non funziona

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5