2011-03-03 8 views
0

Je travaille avec un nom de base de données xyz, nom de table a, b, c, d. ma question est si dans la table un champ de nom, tableau b email champ, table c numéro de téléphone, modifier/mise à jour je veux mettre le tableau d champ téléchargement à 1.SQL Server 2008, SQL Server 2005

Ces tableaux a beaucoup de champs, mais je veux seulement changer table d champ lorsqu'il est donné trois changement de champ dans trois tables différentes.

+0

Je ne comprends pas ce que vous essayez de demander ici .... –

+0

si certains champs spécifiques dans l'un des trois tableaux changent, je voudrais faire une modification dans le quatrième champ de la table. Les données de table non entières ne modifient que les champs spécifiques de ces tables. donc je peux mettre à jour un champ dans ma quatrième table. – dca

Répondre

0

Si je comprends bien votre question, Je voudrais ajouter trois colonnes à la table d et définir chacun à 1 dans le déclencheur de mise à jour des autres tables. Ensuite, dans vos sélections, vous pouvez définir une colonne virtuelle sur 1 si les trois colonnes sont définies sur 1 dans le tableau d.

0

Vous avez besoin d'un déclencheur de mise à jour sur les trois tables a, b et c qui vérifie si la valeur correspondante a changé et si les mises à jour de sorte que le champ upload correspondant dans le tableau d

Exemple pour la table a

CREATE TRIGGER dbo.YourTrigger 
    ON a 
    AFTER UPDATE 
AS 
BEGIN 
    SET NOCOUNT ON; 

IF NOT UPDATE(name) 
    RETURN 

UPDATE d 
set upload = 1 
FROM d 
JOIN inserted i ON i.join_column = d.join_column  
END 
+0

Merci, je suis nouveau à tigger, pourrait expliquer allumé plus. ou est-ce un autre moyen de le faire? – dca

+0

@user - J'ai ajouté un exemple. –

+0

puis-je créer une nouvelle procédure pour cela? et appelez ma procédure de chaque tables? – dca