Déclencher lors de l'insertion et de mise à jour qui ajoute de la date de modification

Je suis en train de faire un simple tableau avec les noms, e-mails, etc, mais j'ai aussi un ModifiedDate. Mon idée est d'utiliser un déclencheur après tant d'insertion et de mise à jour, et insérer la date actuelle. Donc si quelqu'un fait n'importe quoi (sauf les supprimer) pour que la colonne, la date devrait en tenir compte.

Ce n'est cependant pas de travail.

CREATE TRIGGER ModDate
    ON X
    AFTER INSERT, UPDATE
AS
BEGIN

    INSERT INTO X (ModifiedDate)
    VALUES (GETDATE())

END 

Maintenant, j'ai un couple de valeurs qui ne peuvent pas être nulles, et ce que cela semble faire est d'essayer et de créer une nouvelle ligne. Je le voudrais pour insérer la date dans la ligne qui est actuellement en cours de suite, je n'ai aucune idée de comment si. Aussi de ce que si j'ajoute 5 lignes à la fois ?

  • Bien sûr, c'est la création d'une nouvelle ligne, vous disposez d'une instruction INSERT. Si vous voulez intercepter l'insertion et/ou de mise à jour pour modifier une de ces valeurs, vous devez utiliser un déclencheur INSTEAD of. Ensuite pour gérer les multiples opérations de ligne vous avez besoin pour créer votre code de déclencheur afin qu'il les références insérées table virtuelle. Je vous conseille d'utiliser deux déclencheur plutôt qu'un seul. Ou même mieux serait de mettre cette logique dans votre procédure.
  • Comment aurais-je mis cette logique dans mon "procédure" ?
  • J'ai été en supposant que vous utilisez des procédures pour la mise à jour et de l'insertion, mais qui pourrait ne pas être le cas. 🙂
InformationsquelleAutor Kalec | 2015-03-11