W testtable
bazie danych utworzyłem tabelę testbase
o następującej strukturze:
product_no (int, not null)
product_name (varchar(30), not null)
price (money, null)
expire_date (date, null)
expire_time (time(7), null)
Jak jednak napisać wyzwalacz, aby zaktualizował ten konkretny wiersz, który został zmodyfikowany (lub zaktualizowany o nowe informacje) i zapisał datę modyfikacji w expire_date
polu, a czas modyfikacji w expire_time
polu? (lub jeśli to jest możliwe?)
WHERE id = Changed_Row_ID
Odpowiedzi:
Byłoby to dość łatwe, ale tak naprawdę poleciłbym zmianę logiki polecenia, które wstawia / aktualizuje dane, aby dodało w tym momencie dodatkowe informacje.
Jeśli jednak chcesz uruchomić wyzwalacz, możesz zrobić coś takiego:
Korzysta z
INSERTED
tabeli, aby znaleźćproduct_no
wiersze, które zostały zmienione / utworzone. Możesz dowiedzieć się więcej o wyzwalaczach, klikając poniższy link:http://msdn.microsoft.com/en-us/library/ms189799.aspx
Mam nadzieję, że to Ci pomoże.
źródło
inserted
. Czy to oznacza, że byłoby bezpiecznie nie mieć własnej tabeli bazy danych o nazwach takich jakinserted
ideleted
?