我有2个表“#tblData1”和“#tblData2”链接“Id”列。表“#tblData2”可能是也可能不是“#tblData1”的相同“Id”的数据。
Create Table #tblData1 (Id int, Details VARCHAR(10), UniqueKey VARCHAR(10), DetectDate DATE, UpdateBy VARCHAR(10));
insert into #tblData1 values (1, 'DT1', 'uq1', '01/15/2016', 'abc'), (2, 'DT2', 'uq2', '01/16/2016', 'xyz');
Create Table #tblData2 (Id int, Details VARCHAR(10), DetectDate DATE);
insert into #tblData2 values (1, 'DT11', '01/16/2016'), (1, 'DT12', '01/17/2016')
现在,我需要将数据插入3个表“#tblUniqueKeys”,“#tblMaster”和“#tblChild”。
在“#tblUniqueKeys”和“#tblChild”两个表中使用相同的标识“MasterId”。
“#tblData1”中的数据分为2个表“#tblUniqueKeys”和“#tblMaster”。
数据从“#tblData2”进入表“”#tblChild“。
create table #tblMaster(MasterId INT IDENTITY(101,1),Details VARCHAR(10),DetectDate DATE,UpdateBy VARCHAR(10)); create table #tblUniqueKeys(UqId INT IDENTITY(10,1),MasterId INT,UniqueKey VARCHAR(10),DetectDate DATE); create table #tblChild(ChildId INT IDENTITY(201,1),MasterId INT,Details VARCHAR(10),DetectDate DATE);
使用下面的“Merge”sql查询,我可以将记录插入到2个表“#tblUniqueKeys”和“#tblMaster”中。
问题,如何将记录插入第3个表“#tblChild”?我们可以在同一个Merge查询中将记录和“MasterId”一起插入第3个表吗?感谢!!!
MERGE INTO #tblMaster AS Dest
USING
(
SELECT UniqueKey, Details, DetectDate, UpdateBy
FROM #tblData1
) AS Src
ON (1 = 0)
WHEN NOT MATCHED BY TARGET THEN
INSERT
(
Details
,DetectDate
,UpdateBy)
VALUES
(Src.Details
,Src.DetectDate
,Src.UpdateBy)
OUTPUT inserted.MasterId, Src.UniqueKey, Src.DetectDate
INTO #tblUniqueKeys(MasterId, UniqueKey, DetectDate);
select * from #tblMaster
select * from #tblUniqueKeys
DROP TABLE #tblData1;
drop table #tblData2;
DROP TABLE #tblMaster;
drop table #tblChild
DROP TABLE #tblUniqueKeys;