Skocz do zawartości

[Bazy danych] Trigger na tablicy pozycji

Polecane posty

W związku z moim rozwiązaniem Sferycznym, zaistniała potrzeba przechowywania rozszerzonych danych, pozycji dokumentów. Wiem, że Insert nie planuje wprowadzić pól własnych, więc działam nad własnym rozwiązaniem. Stworzyłem tablicę, której Id będzie tożsame z Id z tablicy PozycjeDokumentu i teraz meritum - czy mogę zastosować Triggery MSSQL na tablicy PozycjeDokumentu, dodające i usuwające wpisy w mojej dodatkowej tablicy? Jeśli tak, to czy nie ulegną usunięciu po aktualizacji Insert NEXO? Triggery są następujące:

CREATE TRIGGER [ModelDanychContainer].[PozycjeDokumentu_tri] ON [ModelDanychContainer].[PozycjeDokumentu]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN
  INSERT INTO AKC_PozycjeDokumentu(Id)
  SELECT Id FROM Inserted
END
GO
CREATE TRIGGER [ModelDanychContainer].[PozycjeDokumentu_trd] ON [ModelDanychContainer].[PozycjeDokumentu]
WITH EXECUTE AS CALLER
FOR DELETE
AS
BEGIN
  DELETE FROM AKC_PozycjeDokumentu WHERE Id=(SELECT Id FROM Deleted)
END
GO

 

Link to postu

Dziękuje za odpowiedź :) W między czasie zastosowałem brzydkie, ale mniej inwazyjne rozwiązanie.

 

1 minutę temu, Katarzyna Rozmarynowska napisał:

Można dodać triggery. Nie zostaną usunięte po aktualizacji. Trzeba jednak pamiętać, że jeśli aktualizacja zmieni strukturę danych, z których korzysta trigger, to będzie to generowało błędy w programie.

Kolumny Id z PozycjeDokumentu, raczej nie usunięcie, więc w tym przykładzie się uda :D

Link to postu
×
×
  • Dodaj nową pozycję...