Ancora trigger.... aggiornamento stato

venerdì 09 giugno 2006 - 18.29

ricky Profilo | Junior Member

Ciao, ho un problema con un trigger che dovrebbe aggiornare lo stato di un documento

use tempdb
go
create table OrdiniVenditaRighe(ID int,TipoDoc
varchar(2),NumeroDoc,IDROrdiniVendita int,IDTestata int)
go
insert into OrdiniVenditaRighe values(7,'OV',1,1,1)
insert into OrdiniVenditaRighe values(8,'OV',1,2,1)
insert into OrdiniVenditaRighe values(9,'OV',2,3,2)
insert into OrdiniVenditaRighe values(10,'DT',012006,7,3)
insert into OrdiniVenditaRighe values(11,'DT',012006,8,3)
insert into OrdiniVenditaRighe values(12,'DT',012006,9,3)
go

Quindi

Due Ordini OV (numero doc 1 e 2) vengono inseriti in un unico DT (012006)
con appunto tre elementi (7,8,9)

Ho una tabella testata per i vari documenti
create table OrdiniVenditaTesta(ID int,TipoDoc varchar(2),Stato varchar)

insert into OrdiniVenditaTestavalues(1,'OV',??)
insert into OrdiniVenditaTestavalues(2,'OV',??)
insert into OrdiniVenditaTestavalues(3,'DT',??)

Si vede quindi che due ordini vengono inseriti in un unico DT, quindi
quando vado ad eliminare il documento (esempio DT) devo applicare la
modifica ai 2 (nel mio caso) OV che ne facevano parte. Quello che volevo
indicare è che in un documento possono far parte X documenti dipendenti da
esso e che quindi devono essere "modificati" (per lo stato intendo) in fase
di cancellazione del documento padre.



A questo punto se cancello un documento, nel mio caso il DT, devo modificare
lo stato della testata dei documenti che ne facevano parte (in questo caso
devo modificare lo stato dei due ordini corrispondendi agli ID 1,2 della
testata -> IDTestata int)

Basandomi su questa logica:

Se cancello un OV metto allo stato della testata dei documenti che ne
facevano parte lo stato P
Se cancello un DT metto allo stato della testata dei documenti che ne
facevano parte lo statao C

Quello che vorrei capire è come realizzare questa query con riferimento al
"documento collegato" e come applicare l'IF sulla tipologia del documento!

Grazie per l'aiuto
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