首页 > 解决方案 > 向 tblPurchase 表插入新记录时更新 tblProductStock 表

问题描述

ALTER PROCEDURE [dbo].[spPassPurchaseDataToProductStock]
AS
BEGIN
    SELECT MAX(ItemName) ItemName, ItemCode, SUM(Quantity) Quantity
    INTO #tmp
    FROM tblPurchase
    GROUP BY itemCode;

    UPDATE tblProductStock
    SET Quantity = #tmp.Quantity
    FROM #tmp 
    WHERE ItemCode = #tmp.ItemCode

    INSERT INTO tblProductStock (ItemName, ItemCode, Quantity)
        SELECT ItemName, ItemCode, Quantity 
        FROM #tmp 
        WHERE ItemCode NOT IN (SELECT ItemCode FROM tblProductStock)

    DROP TABLE #tmp;
END

标签: c#sql-server

解决方案


我认为 SQL Server 触发器可以帮助您解决这个问题。触发器是一种特殊类型的存储过程,当数据库服务器中发生事件时会自动运行。

   CREATE TRIGGER <TriggerName>  
   ON ProductStock  
   AFTER INSERT | UPDATE 
   AS  { sql_statement }

推荐阅读