SQL Server、达梦数据库 存储过程:两个表(一对多)数据合并到一个表

使用存储过程和游标处理两个表(一对多)的数据到一个表中,涉及到存储过程调用另一个存储过程技术点,记录SQL Server、达梦两种数据库的实现。

测试表

复制代码
--创建测试表 person
create table person
(
	id int not null,
	name varchar(20),
	primary key(id)
);

--创建测试表 telephone
create table telephone
(
	id int not null,
	toolname varchar(20),
	number varchar(20)
);

--创建测试表 person_telephone
create table person_telephone
(
	id int not null,
	name varchar(20),
	tel varchar(200),
	primary key(id)
);

--插入测试数据
insert into person(id,name) values(1,'李小龙');
insert into person(id,name) values(2,'张大富');
insert into telephone(id,toolname,number) values(1,'电话','010-66666666');
insert into telephone(id,toolname,number) values(1,'手机','13866666666');
insert into telephone(id,toolname,number) values(1,'小灵通','5879325');
insert into telephone(id,toolname,number) values(2,'电话','010-55555555');

go

存储过程脚本

创建两个存储过程:

  • proc1:提取 telephone 的联系数据
  • proc2:调用 proc1 并向person_telephone插入数据

完整阅读:
https://www.laobingbiji.com/page/202404030842010000000010691999.html

相关推荐
拾忆,想起1 小时前
Redis复制延迟全解析:从毫秒到秒级的优化实战指南
java·开发语言·数据库·redis·后端·缓存·性能优化
爬山算法1 小时前
Redis(47)如何配置Redis哨兵?
数据库·redis·bootstrap
感哥1 小时前
MySQL多表查询
mysql
十八旬3 小时前
苍穹外卖项目实战(day-5完整版)-记录实战教程及问题的解决方法
java·开发语言·spring boot·redis·mysql
青鱼入云3 小时前
java面试中经常会问到的mysql问题有哪些(基础版)
java·mysql·面试
送秋三十五3 小时前
MySQL DBA需要掌握的 7 个问题
数据库·mysql·dba
jnrjian3 小时前
v$lock TS lock id1 用于发现Oracle pdb不能关闭的sid
sql·oracle
睡觉的时候不会困3 小时前
MySQL 高可用方案之 MHA 架构搭建与实践
数据库·mysql·架构
kyle~3 小时前
Qt---对话框QDialog
数据库·qt·microsoft
GBASE4 小时前
“G”术时刻:南大通用GBase 8c数据库权限管理场景实践(三)
数据库