我想将存储的过程转换为触发器。存储过程应该在插入/更新后运行,但用户忘记执行它往往不是!SQL存储过程:帮助转换为触发器
存储的过程插入值重新计算一些行:
--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
我想放入触发这使用户不必去想运行的程序。
我有以下开始,但我不知道我是否在正确的轨道上。我应该使用FOR,AFTER还是INSTEAD?
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
任何有关如何去做这个的帮助将非常感激。
非常感谢
马克