因为业务需要,需要使用SQLserver,工作以来就只用过MySQL,SQLserver大学毕业后就没见过了,本来想着和mysql大同小异,结果踩了坑:
1、左链接查询问题,一直以来我们说起左链接都下意识想起以左表为主,左表有的数据显示,没有则不显示,但是,就在这里,我中计了,年轻人还是见识短,我踩坑了,我的业务需求是根据一批设备查询对应的设备记录(一个设备对应记录多条),然后我寻思主要查询记录,那我就直接以记录表为左表,设备表为附表好了,查询完我就准备直接用了,但是我寻思验证一下数据正确性,就是这一步救了我,我内连接又查询了一次,两次数据对不上了,我就迷惑了,最终结论是左链接会有重复数据,我就用内连接了,但还是不放心,毕竟左链接都打破的的认知了,我用笨方法,在程序中for循环查询记录,然后发现内连接也有重复数据,就百度解决问题,百度上说使用distinct关键字,去重,果然好使了,最终我是:
内连接加distinct关键字解决问题
2、批量插入问题,在mybatis中使用foreach批量插入,我都是习惯一次500条,但在SQLservice这里就不行,
疯狂报java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers,
百度了一下,大概是说我传入的参数太多了,超过2000个了(我的是传入对象集合,对象有五个属性),然后我改成400条一次,果然好使了