2017-10-18 1 views
0

J'essaie de configurer une "valeur par défaut" pour une colonne qui a la même valeur qu'une autre colonne dans une ligne correspondante. J'ai donc essayé de faire ceci:Colonne de copie SQL Server dans la table comme valeur par défaut

UPDATE table 
SET field1 = field2 

Mais je ne veux pas le faire manuellement, il devrait se faire automatiquement chaque fois qu'une nouvelle ligne est insérée. Au début, j'ai pensé que ce serait une tâche facile. Mais la meilleure solution que j'ai trouvé jusqu'ici était un script SQL stocké dans un travail qui a été lancé par notre agent serveur SQL.

Y a-t-il une solution qui fonctionne comme une valeur par défaut? Ou est-ce que mon idée est stupide, puisque j'essaie de créer une "valeur par défaut" basée sur une valeur qui n'existe même pas jusqu'à ce que l'insertion se produise? Dans ce cas: Je demande un ami ...

Nous vous remercions de votre aide.

+0

Avez-vous regardé les déclencheurs? Vous pouvez faire AFTER INSERT – Leonidas199x

+0

Non, je n'ai pas essayé d'utiliser des déclencheurs. Merci pour la suggestion. Les déclencheurs sont ce dont j'ai besoin. – Jaymax

Répondre

0

Votre meilleur coup sera d'utiliser un déclencheur juste là. Vous pouvez faire quelque chose comme ceci:

CREATE TRIGGER [dbo].[YourTrigger] ON [dbo].[YourTable] FOR INSERT 
AS 
BEGIN 
    DECLARE @ID AS INT 
    SET @ID = SELECT yourID FROM INSERTED 

    UPDATE YourTable 
    SET field1 = field2 
    WHERE yourID = @ID 
END 
+0

Merci pour votre réponse. Je vais créer un déclencheur de ce type. On dirait que ça résout mon problème. – Jaymax