Witam,
MSSQL Server w wersji Enterprise, Developer, Enterprise Evaluation ma coś co nazywa się "przechwytywaniem zmian". Jako, że mam do czynienia z SQL Server w wersji Express (i pewnie taka pozostanie) gdzie nie ma mozliwości zastosowania "przechwytywania zmian", którą oferują "większe" wersje SQL Servera mam pytanie jak rozwiązać problem śledzenia zmian w rekordach tabeli w wersji Express.
Czy rozwiązanie z triggerem na insert, update i delete byłoby dobre?
Sprawdziłem i działa (robi insert do tabeli [table_b] gdy są zmiany w tabeli [table_a] ale to dla wartości "testowych").
Jak sensownie pobrać wartości z rekordu wstawianego, modyfikowanego lub usuwanego z tabeli [table_a] i wrzucić je do tabeli [table_b]. Zakładam, że w obu tabelach są takie same pola.
Mam np. tabelę table_a
[id]
,[typ]
,[nazwa]
,[autor]
,[data_utworzenia]
i tabelę table_b o takiej samej strukturze.
tworzę trigger
create trigger tr_changes_in_table_a
[dbo].[table_a]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
INSERT INTO [dbo].[table_b]
([id]
,[typ]
,[nazwa]
,[autor]
,[data_utworzenia])
VALUES(1,'k1','pozycja zamienna',1,GETDATE()); -- tutaj chciałbym wstawić wartości z modyfikowanego rekordu tabeli A
END