一、问题起因:
执行储存过程批量生成单据的时候,发现突然报错"Conversion failed when converting the nvarchar value '2023-5-29' to data type int",在测试环境执行却没有问题,很奇怪,于是检查表数据字段中是否存在 “2023-5-29”,发现也不存在该值,很奇怪!!!;
二、案例:
--38W
select count(*) from Student s
--5W
select count(*) from Teacher t
--108W
select count(*) from score t
--这是存储过程里面的查询
select *
from Student s
left join score t on p.sid = s.id
left join Teacher p on s.tid = t.id
LEFT JOIN ...
LEFT JOIN ...
LEFT JOIN ...
**这个查询执行过程就报错了;
三、解决方案
1、首先检查每张关联表的数据总数;
2、数据少的表为主,关联数据多的表;
3、表数据多的情况下,采用临时表的形式