博客
关于我
Merge 的小技巧
阅读量:794 次
发布时间:2023-02-08

本文共 1871 字,大约阅读时间需要 6 分钟。

今天跟大家分享一下搬动数据使用Merge的方法。

有些时候,当我们做数据搬动的时候,有时候做测试啊,换对象啊,就会存在有时候外键存在,不知道怎么对应的关系。比如我现在有架构相同的两组table ,

A1 A2 和 T1 T2

create table A1(ID int identity(1,1) primary key,Name varchar(50));create table A2(ID int identity(1,1) primary key,A1ID int,Name varchar(50));create table T1(ID int identity(1,1) primary key,Name varchar(50));create table T2(ID int identity(1,1) primary key,T1ID int,Name varchar(50));--随便插入几条数据insert into A1(Name) values ('A'),('C'),('B'),('D'),('E'),('F');--随便删除几条,让ID断号delete from A1 where ID in (2,4);insert into A2(A1ID,Name) values (1,'AA'),(3,'BB'),(5,'EE'),(6,'FF');--看下数据select * from A1;ID          Name----------- --------------------------------------------------1           A3           B5           E6           Fselect * from A2;ID          A1ID        Name----------- ----------- --------------------------------------------------1           1           AA2           3           BB3           5           EE4           6           FF

 然后我要将数据搬到 T1 T2 里面,这里就涉及一个ID对应的问题了,我怎么知道 A1的ID = 3对应是T1 的ID = ? 呢(当然你是可以使用 identity insert 的 ╮(╯_╰)╭) ,但是既然要用Merge。那我就用Merge 

--建一个临时表存放一下对应关系create table #Tmp(A1ID int,T1ID int);--用Merge来插入,把插入结果Output到临时表里面merge T1using A1on 1 = 0when not matched then insert (Name) values(Name) output A1.ID,inserted.ID into #Tmp(A1ID,T1ID);--这样#Tmp就存有 A1 和 T1 的ID对应关系啦insert into T2(T1ID,Name)select #Tmp.T1ID,A2.Name    from A2        inner join #Tmp ON A2.A1ID = #Tmp.A1ID;select * from T1ID          Name----------- --------------------------------------------------1           A2           B3           E4           Fselect * from T2ID          T1ID        Name----------- ----------- --------------------------------------------------1           1           AA2           2           BB3           3           EE4           4           FF

 

 

然后数据就搬过去了,然后故事就完了。。。。。

 

转载于:https://www.cnblogs.com/Gin-23333/p/4999330.html

你可能感兴趣的文章
Microsoft Store 里面应用没有获取和安装按钮,无法安装应用 怎么办?
查看>>
Microsoft Visio 详解-ChatGPT4o作答
查看>>
Microsoft visual c++ 14.0 is required问题解决办法
查看>>
Microsoft Windows XP SP3安装测试手记
查看>>
Microsoft.CSharp.targets不存在解决方法
查看>>
Microsoft.Web.Administration.ServerManager启用IIS的ISAPI
查看>>
Microsoft语音识别定制培训
查看>>
MIF格式详解,javascript加载导出 MIF文件示例
查看>>
Milesight VPN server.js 任意文件读取漏洞(CVE-2023-23907)
查看>>
Miller rabin
查看>>
miller-rabin matlab,Miller-Rabin素数判断算法
查看>>
mime类型大全 input file accept
查看>>
Mimikatz2.2 如何抓取Win11登录明文密码
查看>>
mina1.7
查看>>
Mina中的协议制订和解析策略
查看>>
mindspore生物图像分割[U-Net]演示
查看>>
mini web
查看>>
miniconda设置清华源
查看>>
MinIO - 从 环境搭建 -> SpringBoot实战 -> 演示,掌握 Bucket 和 Object 操作
查看>>
MinIO - 服务端签名直传(前端 + 后端 + 效果演示)
查看>>