Sql server 2012 合并来自两个不同数据库的两个子表
我不熟悉SQL SERVER 2012合并语句。我需要将来自不同数据库的两个子表合并到一个表中 数据库a:Sql server 2012 合并来自两个不同数据库的两个子表,sql-server-2012,Sql Server 2012,我不熟悉SQL SERVER 2012合并语句。我需要将来自不同数据库的两个子表合并到一个表中 数据库a: 父发票表 -因弗诺酒店 -InvDate日期时间 -客户名称varchar(50) -因瓦双 子发票数据表 -因弗诺酒店 -InvDate日期时间 -ItemName varchar(50) -数量整数 -倍率 DataBaseB:包含与上面相同的结构 现在,我希望在不丢失数据的情况下将两个子表合并到一个子表中。单个发票可能包含数量不同/相等的相同项目。如何合并这些子表 提前感谢,, Se
Senthil首先,您需要能够同时查询两个表。您可能需要链接服务器或openrowset(或朋友) 考虑到您只是想合并子表,父表是不相关的 然后你需要弄清楚合并的逻辑。假设您希望将A合并为B。有三种情况:
- 匹配
- 不匹配[按目标]
- 来源不匹配
MERGE child as target
USING (select ... from databaseA.dbo.child) as source (...)
ON (conditions)
WHEN MATCHED THEN
UPDATE SET target.v = source.v
WHEN NOT MATCHED BY TARGET THEN
INSERT (v) VALUES (source.v)
-- WHEN NOT MATCHED BY SOURCE THEN
-- Don't delete anything
;