Ho letto qualcosa e provato a creare un trigger:
CREATE TRIGGER prova
ON scadenze
AFTER INSERT
AS
IF [DATA2] IS NULL
BEGIN
SET [DATA2] = [DATA1]
END;
dove DATA1 è una data sempre impostata però mi da errore sul segno =
In cosa sbaglio?
Grazie
Ho letto qualcosa e provato a creare un trigger:
CREATE TRIGGER prova
ON scadenze
AFTER INSERT
AS
IF [DATA2] IS NULL
BEGIN
SET [DATA2] = [DATA1]
END;
dove DATA1 è una data sempre impostata però mi da errore sul segno =
In cosa sbaglio?
Grazie
In varie cose
Se il trigger lo fai dopo l'insert (ed è giusto) il tuo record è già effettivamente stato inserito nel database quindi dovrai andare a fare un'operazione di update dell'ultimo record inserito, aggiornando il valore della colonna data2 (ed impostandola uguale a quella che ha la colonna data1 dell'ultimo record inserito)
Ovviamente dovrai aggiornare il campo data2 solamente dell'ultimo record inserito (e non tutti quelli eventualmente già presenti).
Per trovare l'ultimo record inserito nei trigger si può usare la parola "inserted" (che indica, appunto, l'ultima cosa inserita)
Il tuo trigger potrebbe quindi essere qualcosa del tipo (l'ho scritto senza pensarci troppo, si può ovviamemte migliorare, non fosse altro perchè ci sono 2 query identiche e quindi si potrebbe utilizzare una variabile di appoggio)
CREATE TRIGGER [dbo].[test_trg]
ON scadenze
AFTER insert
AS
BEGIN
if (select data2 from inserted) is null
update scadenze set data2 = (select data1 from inserted) where data1 = (select data1 from inserted)
END