Originariamente inviato da marcotavoloni
riuscite a farmi un'esempio simile al mio caso, sulla StoredProcedure con l'istruzione Update, ovviamente prima si deve prelevare il valore gia esistente per poi addizionare il nuovo (che sia pos o neg) e restiruire un valore boleano di conferma della riuscita operazione.
Facciamo conto di avere una
Tab: "Articoli"
Codice int
Qty int
e una
Tab: "Movimenti"
Id int(contatore)
Codice int
Qty int
DataOra datetime
L'esempio di stored che ti sto per presentare inserisce un movimento è aggiorna la tabella degli articoli.
STORED
codice:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[ADD_MOVIMENTO]
@CODICE int,
@QTY INT
AS
@Declare @Scorta int
BEGIN
SET NOCOUNT ON;
/***
Procedura per l'inserimento di un Movimento e Aggiornamento dei quantitavi della tabella ARTICOLI
***/
/*** Inserisco il movimento ***/
Insert into Movimenti
(Codice,
Qty,
DataOra)
Values(
@Codice,
@Qty,
@getdate()
)
/*** Aggiorna l'anagrafica articoli ***/
-- Estraggo il quantitativo attuale dell'articolo (questa procedura puo serivirti nel caso la qty inserita sia negativa
-- per vedere se la quantita dell'articolo supporta lo scarto e non ti rimangono quantitativ negativi)
Select @Scorta = Qty from Articoli where Codice = @Codice
@Scorta = @Scorta + @Qty
-- Aggiorno la tab Articoli
Update Articoli
set Qty = @Scorta
where Codice = @Codice
/**Se vuoi vedere il risultato dell'operaazione estrai l'articolo**/
Select * from Articoli where Codice = @Codice
END
GO