我有一个名为ItemMenu
的SQL数据库表,其中有5个字段名为:PLU
(主键),description
,size
,price
,{{ 1}}。此表填充了活动记录。
现在,我创建了另一个只包含2个字段的表,其中一个字段称为department
,另一个字段为PLU
。这个新表名为Price
,只要我想将记录发送到SQL表Price_import
,就从MS Access链接表中获取记录。
我正在尝试创建一个触发器,每当我将更改发送到SQL中的ItemMenu
表时,它只更新PLU
中某个ItemMenu
的价格。一旦价格在Price_import
表中更新,我希望在可能的情况下自动从ItemMenu
表中清除记录,但这并不重要。因此,我只是一个想知道SQL如何工作的爱好者;希望能得到一些帮助。
答案 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