sql执行时报错:Conversion failed when converting the nvarchar value ‘2023-5-29‘ to data type int

文章讲述了在执行批量生成单据的储存过程中遇到的NVARCHAR值无法转换为INT类型的错误,通过检查关联表数据和优化查询策略,提出了解决方案,包括检查表数据总数和使用临时表的方法。
摘要由CSDN通过智能技术生成

一、问题起因:

        执行储存过程批量生成单据的时候,发现突然报错"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、表数据多的情况下,采用临时表的形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值