8
votes

SQL Server Créer des déclencheurs sur Insérer et mettre à jour

J'ai créé une table avec les colonnes suivantes: ObservationDidatedDate, description, ... ... et LastUnDatedDate dans SQL Server 2008 R2. L'observationID est une identité avec incrémentation de 1.

Je dois créer deux déclencheurs, une pour insertion et l'autre pour la mise à jour. Sur le nouvel enregistrement inséré, le déclencheur d'insertion mettra à jour la colonne FirstCreateDatedDate en obtenant le DateTime actuel; Lors de l'enregistrement existant mis à jour, le déclencheur de mise à jour mettra à jour LastUpDatedDate Colunm en obtenant la dateTime actuelle.

J'ai échoué à ce que je suppose que l'identification pourrait être le problème.

Quelqu'un pourrait-il me donner une main? Merci!

acclamations, Alex xxx


2 commentaires

Avez-vous obtenu une erreur d'erreur ici ici s'il vous plaît!


C'est bizarre que le code que j'ai posté ici a fonctionné ici lorsque j'ai utilisé Insérer SQL dans la fenêtre de requête pour ajouter un enregistrement sans succès correctement lorsque j'essaye manuellement d'ajouter un nouvel enregistrement en mode Edition Table. Le problème est que le champ Identifier ID a obtenu un point d'interrogation rouge à côté; Cependant, lorsque j'ai fait une sélection de toutes les questions, l'enregistrement a été ajouté .... PS. J'utilise SQL Server Management Studio.


3 Réponses :


12
votes

Je pense que vous êtes surtout correct mais n'accédez pas correctement aux tables insérées ou supprimées. xxx

ps. J'espère que cela fonctionne comme je l'ai écrit dans le bloc-notes et je ne l'ai pas testé.


0 commentaires

1
votes

Le code ci-dessous concerne une fois la mise à jour après modifier la dernière colonne de date modifiée.

Veuillez conseiller si vous voyez un problème avec cela. Merci! P>

ALTER TRIGGER [dbo].[T_UpdateObservation] ON [dbo].[GCUR_OBSERVATION] 
AFTER UPDATE
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- get the last id value of the record inserted or updated
DECLARE @id INT
SELECT @id = [ObservationId]
FROM DELETED

-- Insert statements for trigger here
UPDATE GCUR_OBSERVATION
SET GCUR_OBSERVATION.LastUpdatedDate = getdate()
WHERE [ObservationId] = @id

END


0 commentaires

-2
votes
Create TRIGGER [dbo].[TrigerName] ON [dbo].[TableCreateTriger] FOR INSERT AS
INSERT INTO TableInsertDate SELECT * FROM TableCreateTriger

0 commentaires