触发更新一个表中的字段值,从另一个表中获取插入

时间:2014-09-17 09:03:30

标签: sql

我有一个名为ItemMenu的SQL数据库表,其中有5个字段名为:PLU(主键),descriptionsizeprice,{{ 1}}。此表填充了活动记录。

现在,我创建了另一个只包含2个字段的表,其中一个字段称为department,另一个字段为PLU。这个新表名为Price,只要我想将记录发送到SQL表Price_import,就从MS Access链接表中获取记录。

我正在尝试创建一个触发器,每当我将更改发送到SQL中的ItemMenu表时,它只更新PLU中某个ItemMenu的价格。一旦价格在Price_import表中更新,我希望在可能的情况下自动从ItemMenu表中清除记录,但这并不重要。因此,我只是一个想知道SQL如何工作的爱好者;希望能得到一些帮助。

1 个答案:

答案 0 :(得分:0)

MyDatabase将ANSI_NULLS设置为ON         设置QUOTED_IDENTIFIER         走 - 此触发器附加到Price_Import表,因此当此表获得新的价格值时,触发器将更新Mydatabase MenuItem表中此类项目的价格,该表是Mydatabase中的主要项目表

     ALTER TRIGGER [dbo].[trgafterinsertinto_Price_Import_Table] ON [dbo].[Price_Import]
AFTER INSERT
    AS 
    BEGIN
    SET NOCOUNT ON;

- 使用基于集合的方法更新您的表格 - 来自"已插入"伪表,CAN和 - WILL - 包含多行!

     UPDATE [dbo].[MenuItem] 
SET [Price] = i.[Price] ,[Cost] = i.[Cost]
    FROM Inserted i
   WHERE MenuItem.PLU = i.PLU
   DELETE FROM dbo.Price_Import
   END