USE demo CREATE TRIGGER AddEditKlient ON Klient INSTEAD OF UPDATE, INSERT AS BEGIN END
Na wstępie dostaje komunikat o błędzie: 'CREATE TRIGGER' must be the first statement in a query batch.
Nie mam pojęcia jak zabrać się za wstawienie tych wartości do pola komentarz?
Klika prostych błędów, udało mi uzyskać porządny efekt.
USE demo GO CREATE TRIGGER Customer_INSERT ON Customer FOR INSERT AS BEGIN DECLARE @ID int = @@IDENTITY --PRINT 'NR ID: ' + CONVERT(varchar(11),@ID) UPDATE Customer SET info = (SELECT name, lastname FROM Customer WHERE id = @ID) WHERE id = @ID END
Fajnie całość działa dla INSERTA. Moje pytanie jak mogę uzyskać id rekordu edytowanego?
Chcę przed wykonaniem polecenia UPDATE zapisać stare dane do pola info. Problem z tym id.
USE demo GO CREATE TRIGGER Customer_UPDATE ON Customer INSTEAD OF UPDATE AS BEGIN -- SELECT * FROM Customer END
Pogrzebałem, poszperałem i oto jest:
CREATE TRIGGER Customer_UPDATE ON Customer INSTEAD OF UPDATE AS BEGIN DECLARE @ID int SELECT @ID = idd FROM Inserted UPDATE Customer SET info = (SELECT name, lastname FROM Customer WHERE id = @ID) WHERE id = @ID END
I tak... Trigger wykonuje zmianę pola info, ale update nie modyfikowanej wartości czyli np:
UPDATE Customer SET name='Ala' WHERE id = 5, nie wprowadza zmiany w polu name...