Je souhaite convertir un proc enregistré en déclencheur. Le proc stocké est censé être exécuté après les insertions/mises à jour, mais les utilisateurs oublient de l'exécuter plus souvent qu'autrement!Processus stocké SQL: aide à la conversion en déclencheur
Les inserts proc stockées valeurs recalculées pour certaines lignes:
--Delete rows where RowCode=111
DELETE FROM dbo.TableA WHERE [year]>=1998 AND RowCode=111
--Insert new values for RowCode=111 for years>=1998
INSERT INTO dbo.TableA
SELECT [Year], RowCode=111, ColCode, SUM(Amt) AS Amt
FROM dbo.TableA
WHERE [Year]>=1998 AND RowCode IN (1,12,23) AND ColCode=14
GROUP BY [Year], ColCode
Je voudrais mettre cela en un déclencheur afin que les utilisateurs ne doivent pas penser à l'exécution d'une procédure.
J'ai les éléments suivants commencés, mais je ne suis pas sûr si je suis sur la bonne voie. Dois-je utiliser pour, après ou au lieu de?
CREATE TRIGGER TRIU_TableA
ON TableA
FOR INSERT,UPDATE AS
BEGIN
SET NOCOUNT ON
IF EXISTS (SELECT * FROM Inserted WHERE RowCode=111)
BEGIN
INSERT INTO TableA
SELECT [Year], RowCode, ColCode, SUM(Amt) AS Amt
FROM Inserted
WHERE [Year]>=1998 AND RowCode IN (1,12,23) AND ColCode=14
GROUP BY [Year], ColCode
END
END
Une aide pour réaliser cette opération serait très appréciée.
Un grand merci
Mark