2014-02-25 74 views
-1

当我想从一个表中获取值到另一个表的工作,但是当我想要编辑值时,它会将新值添加到tbl_ItemDetails。我只需要更新现有的行。创建触发器将表中的记录插入另一个表

CREATE TRIGGER trigger_UpdateItemDetails ON tbl_PurchaseDetails 

FOR INSERT AS 

DECLARE @PurchaseID VARCHAR(20) 

DECLARE @Quantity INT 

DECLARE @WarehouseID VARCHAR(20) 

SELECT @PurchaseID=(PurchaseID) FROM INSERTED 

SELECT @Quantity=(ItemQuantity) FROM INSERTED 

SELECT @WarehouseID=(WarehouseID) FROM INSERTED 

INSERT INTO 

tbl_ItemDetails 

(PurchaseID,Quantity,WarehouseID) 

VALUES 

(@PurchaseID,@Quantity,@WarehouseID) 
+5

为什么标记为c? – Collin

+0

看起来像SQL Server也许? (如果是这样,请添加该标签,否则请为您的数据库系统添加一个标签,触发器是供应商特定的)。如果它是SQL Server,它已经损坏。 'inserted'可以包含0,1或**多行**。 –

+0

请发布您的表架构的SQL小提琴或张贴在这里。 – UnhandledExcepSean

回答

0

让我开始与此: 你永远不应该写不能处理组触发器。

CREATE TRIGGER trigger_UpdateItemDetails ON tbl_PurchaseDetails 
FOR INSERT AS 

UPDATE itm 
SET PurchaseID=i.PurchaseID 
    ,Quantity=i.ItemQuantity 
    ,WarehouseID=i.WarehouseID 
FROM INSERTED i 
INNER JOIN tbl_ItemDetails itm ON i.???=itm.??? 
--I have no idea what your join clause should be as I don't know your data structure 
+0

我需要帮助才能从表中获取值。我有一个数据库“MechanicalDatabase”,我有4个表。我想从表格“a”,“b”,“c”到表格“报告”中获取“材料”和“价格”的值。我的意思是,当我写的东西,以表A,B,C我想看到表这些值“报告” 表“一”的提法,材质,价格 表“B”的提法,材质,价格 表“c”参考,材料,价格 表“报告”材料,价格 – user3198433

相关问题