2010-10-26 10 views
0
CREATE TRIGGER ChangesTracker on [SearchEngine].[Urls] 
FOR UPDATE, INSERT AS 
UPDATE [SearchEngine].[Urls] 
SET [IsNormalized] = 0 
WHERE [AbsoluteUrl] NOT IN or <> or != (SELECT [AbsoluteUrl] FROM INSERTED) 

Qu'est-ce qui ne va pas?Suivre les modifications sur la colonne X et mettre à jour la valeur de la colonne Y par Trigger dans Sql Server

MISE À JOUR Merci @codeulike pour votre aide. J'ai mis le bon déclencheur t-sql à une réponse.

+0

ce qui est l'erreur? BTW que le formatage suks –

+0

Je veux mettre à jour IsNormalized à 0 lorsque AbsoluteUrl est modifié! Mais ce déclencheur n'atteint pas mon but – Sadegh

Répondre

0
CREATE TRIGGER [SearchEngine].[ChangesTracker] 
ON [SearchEngine].[Urls] FOR UPDATE 
AS 
    UPDATE [SearchEngine].[Urls] 
    SET [SearchEngine].[Urls].[IsNormalized] = 0 
    From [Inserted] 
    INNER JOIN [Deleted] 
    ON [Inserted].[UrlId] = [Deleted].[UrlId] 
    WHERE [Inserted].[AbsoluteUrl] != [Deleted].[AbsoluteUrl] 
3

En supposant que vous avez une colonne ID:

CREATE TRIGGER ChangesTracker on [SearchEngine].[Urls] 
FOR UPDATE, INSERT AS 
UPDATE X 
SET X.[IsNormalized] = 0 
FROM [SearchEngine].[Urls] X JOIN INSERTED I ON X.id = I.id 
WHERE x.[AbsoluteUrl] != I.[AbsoluteUrl] 
+0

Merci marque, tu as raison. quelques changements devaient être travail. – Sadegh