Update che non funge con la with

lunedì 22 settembre 2008 - 12.00

trinity Profilo | Guru

Salve ragazzi ho questa stored

[CODE]CREATE PROCEDURE [dbo].[InsC591_New] ( @Codalbergo Int, @CodComAlbergo Int, @idstato Int, @idcomune Int, @idgruppo Int, @Datapartenza SmalldateTime ) AS BEGIN WITH CTE_GetID AS ( SELECT MIN(iddb) AS id FROM dbo.ARCHIVIO_MOV_NEW WHERE codalbergo=@codalbergo and codcomalbergo=@codcomalbergo and idstato = @idstato and idcomune = @idcomune and idgruppo = @idgruppo and datapartenza Is Null ) UPDATE T SET T.datapartenza = @datapartenza From Archivio_mov_new As T JOIN CTE_GetID AS CTE ON T.iddb = CTE.id Where T.codalbergo=@codalbergo And T.codcomalbergo=@codcomalbergo And T.idstato=@idstato And T.idcomune=@idcomune And T.idgruppo=@idgruppo And T.datapartenza Is Null END[/CODE]

Partiamo dall'inizio, la tabella del db è la seguente:

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

) ON [PRIMARY]

supponiamo che inserisco i seguenti record:

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


Eseguendo una select avremo il seguente scenario:

[CODE] Select * From archivio_mov_new OUTPUT 1 1000 60038 21/09/2008 0.00.00 NULL 0 58091 0 0 2 1000 60038 21/09/2008 0.00.00 NULL 0 58091 0 0 3 1000 60038 21/09/2008 0.00.00 NULL 0 58091 0 0 4 1000 60038 22/09/2008 0.00.00 NULL 0 58091 0 0 5 1000 60038 22/09/2008 0.00.00 NULL 0 58091 0 0 7 1000 60038 22/09/2008 0.00.00 NULL 0 58091 0 0 8 1000 60038 22/09/2008 0.00.00 NULL 0 58091 0 0 9 1000 60038 22/09/2008 0.00.00 NULL 0 58091 0 0 [/CODE]

Allora se eseguo la stored sopra descritta attraverso un ciclo di vb dicendo quante volte deve essere eseguita per aggiornara la data di partenza, se la faccio
eseguire anche solo una volta settando la data di paretnza = 22-09-2008 si dovrebbe aggiornare solamente il primo record libero che ha i requisiti richiesti ossia
nel nostro caso il record che ha come Iddb=1 mentre mi si aggiorna sia questo che il record che ha idbd=4

Come mai?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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