我正在尝试执行查询但遇到了麻烦。首先,我有表A和表B.表A包含以下列(RowID,ItemNumber,CaseCount,Elc,TotalElc,TimeStamp)。表B包含以下列(RowID,ItemNumber,Elc,TotalElc) 我正在使用仪表板将值插入表A.我将整数插入ItemNumber和CaseCount。
插入这些值后,我在任何插入后使用表A上的内部触发器。内部触发器获取刚插入的值,并使用ItemNumber查找表B以获取ELC和Totallc,并将其插入到表A中,其中ItemNumber与表B匹配。
我没有太多代码,因为我几乎被困在第一位。任何帮助都非常感谢。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER ObtainValues
ON Table A
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for trigger here
END
GO
答案 0 :(得分:0)
由于您已在表A上创建了Trigger,因此无论何时插入行,SQL Server都将创建一个名为 INSERTED 的表,该表仅包含新添加的行。此 INSERTED 表的范围仅在您的触发器主体中。
检查以下代码:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER ObtainValues
ON Table A
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE TableA
SET col1 = B.col1,
col1 = B.col1
FROM TableB B
WHERE B.ItemNumber = (SELECT ItemNumber FROM INSERTED)
END
GO
同样,当发生删除事件时,会创建 DELETED 表。
答案 1 :(得分:0)
以Nithin的优秀榜样为出发点。我对此进行了修改,因此它将处理多行插入。
CREATE TRIGGER ObtainValues
ON TableA
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE TableA
SET col1 = B.col1,
col1 = B.col1
FROM TableB B
INNER JOIN TableA A on a.[YourPrimaryKey] = b.[YourPrimaryKey]
SET NOCOUNT OFF;
GO