J'ai créé une table testtable
à l'intérieur de la base de données testbase
qui a la structure suivante:
product_no (int, not null)
product_name (varchar(30), not null)
price (money, null)
expire_date (date, null)
expire_time (time(7), null)
Cependant, comment puis-je écrire un déclencheur de telle sorte qu'il mettra à jour cette ligne particulière qui a été modifiée (ou mise à jour avec de nouvelles informations) et enregistre la date de modification dans le expire_date
et l'heure de modification dans le expire_time
champ? (ou si c'est possible?)
Ce serait assez facile, mais je recommanderais en fait de changer la logique de la commande qui insère/met à jour les données afin d'ajouter des informations supplémentaires à ce stade.
Cependant, si vous souhaitez procéder à un déclencheur, vous pouvez faire quelque chose comme ceci:
create trigger my_trigger
on my_table
after insert, update
as
begin
declare @dt datetime = getdate();
update a
set expire_date = CONVERT(DATE, @dt, 101),
expire_time = CONVERT(TIME, @dt)
from my_table as a
join inserted as b
on a.product_no = b.product_no;
end
go
Il utilise la table INSERTED
pour trouver le product_no
des lignes qui ont été modifiées/créées. Vous pouvez en savoir plus sur les déclencheurs sur le lien ci-dessous:
http://msdn.Microsoft.com/en-us/library/ms189799.aspx
J'espère que ceci vous aide.