Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Delete a catena in una SP
lunedì 26 giugno 2006 - 19.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ricky
Profilo
| Junior Member
179
messaggi | Data Invio:
lun 26 giu 2006 - 19:33
Ciao, ho provato ad effettuare una cancellazione a catena in una SP, ma non
riesco a gestire una condizione nell'operazione di delete di una tabella
collegata:
CREATE TABLE [dbo].[OrdiniProduzioneTestata](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDClienti] [int] NULL CONSTRAINT [DF__prodt_ord__ID_CL__589C25F3] DEFAULT
((0)),
[Numero] [varchar](15) COLLATE Latin1_General_CI_AS NULL,
[Data] [datetime] NULL
)
insert OrdiniProduzioneTestata (77,1,0001,01/01/2006)
CREATE TABLE [dbo].[MagazzinoMovimenti](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDMagazzini] [int] NULL,
[IDDocumento] [int] NULL,
[IDUbicazioneArticoli] [int] NULL,
[IDArticoli] [int] NULL,
[TipoMovimento] [varchar](2) COLLATE Latin1_General_CI_AS NULL,
[Data] [datetime] NULL,
[Qta] [int] NULL,
[Importo] [decimal](18, 4) NULL CONSTRAINT [DF_MagazzinoMovimenti_Importo]
DEFAULT ((0)),
[Causale] [varchar](1) COLLATE Latin1_General_CI_AS NULL,
)
insert MagazzinoMovimenti (1,1,77,650,25,'CP',01/01/2006,10,'C')
insert MagazzinoMovimenti (2,1,77,650,25,'CP',01/01/2006,10,'C')
insert MagazzinoMovimenti (3,1,77,652,27,'CP',01/01/2006,30,'C')
insert MagazzinoMovimenti (4,1,77,653,28,'SP',01/01/2006,80,'S')
Nella mia SP eseguo la cancellazione di OrdiniProduzioneTestata ma in
automatico devo cancellare anche i movimenti collegati,
quindi i movimenti che hanno IDDocumento come l'ID della testata che
cancello, e questo non sarebbe un problema in quanto passo direttamente l'ID
della testata alla SP, quindi lo uso anche per cancellare tutti i movimenti
tramite MagazzinoMovimenti.IDDocumento
Il vero problema è:
prima di cancellare il contenuto di MagazzinoMovimenti, voglio aggiornare la
tabella
CREATE TABLE [dbo].[MagazzinoUbicazioniArticolo](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDArticoli] [int] NULL,
[QtaGiac] [float] NULL,
[QtaImp] [float] NULL
)
aumentando o diminuendo la quantità giacenza in base all'operazione della
tabella MagazzinoMovimenti(Carico o Scarico di produzione)
come?
l'IDUbicazioneArticoli di MagazzinoMovimenti che sto cancellando, è
collegato a ID.MagazzinoUbicazioniArticolo
quindi se
MagazzinoMovimenti.Tipomovimento = 'CP' (carico prod) devo decrementare
MagazzinoUbicazioniArticolo.QtaGiac per la quantità MagazzinoMovimenti.Qta
se
MagazzinoMovimenti.Tipomovimento = 'SP' (scarico prod) devo incrementare
MagazzinoUbicazioniArticolo.QtaGiac per la quantità MagazzinoMovimenti.Qta
Questa operazione per tutte le righe cancellate
BEFORE DELETE
insert MagazzinoUbicazioniArticolo (650,25,77,100)
insert MagazzinoUbicazioniArticolo (651,26,77,100)
insert MagazzinoUbicazioniArticolo (652,27,77,100)
insert MagazzinoUbicazioniArticolo (653,28,77,100)
AFTER DELETE dovrebbe essere (se non ho sbaliato niente)
insert MagazzinoUbicazioniArticolo (650,25,77,80) -> (100-10-10)
insert MagazzinoUbicazioniArticolo (651,26,77,100)
insert MagazzinoUbicazioniArticolo (652,27,77,70) -> (100-70)
insert MagazzinoUbicazioniArticolo (653,28,77,180) -> (100+80)
Torna su
Stanze Forum
Elenco Threads
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 !