当前位置: 首页 > article >正文

SqlServer: An expression services limit has been reached异常处理

在工作中遇到一个问题,因为项目很老,代码很不规范,出现一种场景:

查询所有客户(5w条以上),然后根据客户Id,再去其他表查询,代码中是直接将customerId拼接到sql中去查询,形成的sql如下:

select * from CustomerAddress where customerId in (1,2,3,........52000)

这样就会达到数据库对in元素中的个数的限制,虽然sqlserver没有明确的限制,但受到各种因素的影响,还是有上限的。

解决方案当然是尽量避免这种动态拼接大批量的in元素。但是就像我遇到的这种,不得不拼接的可以使用XML,示例如下:

declare @Ids nvarchar(max) = '1,2,3,4,....,N';
select * from TableName where ColumnName in (select value from string_split(@Ids,','));


http://www.kler.cn/a/500314.html

相关文章:

  • 操作系统之磁盘
  • 研究线段树的最大子段和
  • 如何让QPS提升20倍
  • 【学习路线】Python爬虫 详细知识点学习路径(附学习资源)
  • [程序设计]—代理模式
  • 单例模式-如何保证全局唯一性?
  • 【github】向右箭头文件打不开,下载也是空白
  • 【西北工业大学主办 | EI检索稳定 | 高H值专家与会报告】2025年航天航空工程与材料技术国际会议(AEMT 2025)
  • 单例模式5种写法
  • mysql根据表的统计信息核算一下表成本
  • Elasticsearch入门篇
  • 丢帧常见的几种处理方法
  • python+pdfplumber:提取和分析PDF中的表格、文本等数据,实现pdf转图片、CSV、JSON、dict
  • 解决Edge打开PDF总是没有焦点
  • Homestyler 和 Tripo AI 如何利用人工智能驱动的 3D 建模改变定制室内设计
  • Kubernetes集群架构
  • EasyCVR视频汇聚平台如何配置webrtc播放地址?
  • 车载数据结构 --- ARXML VS JSON
  • 【面试题】技术场景 6、Java 生产环境 bug 排查
  • 代码随想录刷题day05|(数组篇)59.螺旋矩阵 II
  • fastgpt 调用api 调试 写 localhost, 127.0.0.1不行,要 ipconfig 找到本机ip
  • ChatGPT 网络配置问题解决方案