8 messaggi dal 07 agosto 2007
Ciao ragazzi dovrei creare un trigger che all'evento update di una tabella (tabellaUpdated)

esegue una insert in una tabella ed in questa deve inserire l'ID della tabella appena UPDATATA (tabellaUpdated)

ESEMPIO:

CREATE TRIGGER trg_tableUpdated
ON tableUpdated
AFTER UPDATE
AS
IF ( UPDATE (Pagata) )
BEGIN
INSERT INTO Log_Query_Su_Articoli ([data], ora, idDocumento, identOperatoreBanco, idarticolo, qta, operazione) values (GETDATE(),CAST(GETDATE() AS TIME), "idarticolo",0, 0, 0, 'Text_string')

END;

ECCO: il mio problema è che nel campo: idarticolo devo inserire l'id del record appena UPDATATO nella tabella: tabellaUpdated

sono stato chiaro? spero di si

In attesa RINGRAZIO
296 messaggi dal 08 gennaio 2011
Ciao,
prova a modificare la tua clausola VALUES dello script del trigger nel modo seguente :

values (GETDATE(),CAST(GETDATE() AS TIME), (SELECT IdArticolo FROM inserted) ,0, 0, 0, 'Text_string')

Ho usato il seguente trigger con due tabelle T1 e T2. T1 è la tabella cui è associato il trigger e T2 è la tabella che funge da log delle modifiche su T1. Ogni riga di T2 contiene anche l'id della riga di T1 che è stata modificata. T2 deve avere una colonna chiave primaria univoca altrimenti sarebbe per esempio impossibile eliminare righe da T2.

CREATE TRIGGER [dbo].[Trg_T1_Upd] ON [dbo].[T1] AFTER UPDATE
AS
SET NOCOUNT ON;
INSERT INTO T2 (idt1, dataOra, descrizione)
values ((SELECT IdT1 FROM inserted),GETDATE(),'Aggiornamento')


inserted è una tabella (creata automaticamente) contenente le righe della tabella che è stata modificata.

Spero di esserti stato utile.

Ciao.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.