【发布时间】:2014-01-08 21:02:31
【问题描述】:
我有 2 个名为
的表PROD_DET
( ID , PROD_SUMM_ID, TRANS_DATE, EMP_ID, PROC_ID , PCS)
和
PROD_SUMM
( ID , TRANS_DATE, EMP_ID, PROC_ID , PCS)
现在每当一条记录插入到 PROD_DET 表中时,
我想Insert(如果唯一的 TRANS_DATE、EMP_ID、PROC_ID 的记录不可用)/Update(如果唯一的 TRANS_DATE、EMP_ID、PROC_ID 的记录可用)在我的PROD_SUMM表格,
来自 PROD_DET 的唯一 TRANS_DATE 表应该放到PROD_SUMM表的TRANS_DATE中,
唯一的 EMP_ID 和唯一的 PROC_ID 应该进入它们的 相应的列 在 PROD_SUMM 表中
- 特定 TRANS_DATE 的多个记录的 PCS 总和应在 PROD_SUMM 表中的 PCS 列
- PROD_SUMM 表中的 ID 应更新为 PROD_SUMM_ID 列 PROD_DET 表
我尝试过使用触发器,但没有达到目标, 找到下面的屏幕截图
创建表格的脚本 ~~~~~~~~~~~~~~~~~~~~~~
CREATE TABLE [dbo].[PROD_DET](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PROD_SUMM_ID] [int] NULL,
[TRAN_DATE] [date] NOT NULL,
[EMP_ID] [int] NOT NULL,
[PROC_ID] [int] NOT NULL,
[PCS] [smallint] NOT NULL,
CONSTRAINT [PK_PROD_DET] PRIMARY KEY CLUSTERED
( [ID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
CREATE TABLE [dbo].[PROD_SUMM](
[ID] [int] IDENTITY(1,1) NOT NULL,
[TRAN_DATE] [date] NOT NULL,
[EMP_ID] [int] NOT NULL,
[PROC_ID] [int] NOT NULL,
[PCS] [int] NOT NULL,
CONSTRAINT [PK_PROD_SUMM] PRIMARY KEY CLUSTERED
( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
【问题讨论】:
标签: sql-server sql-server-2008 triggers merge