sql - 逗号分隔 IN 语句中的最大项目数

标签 sql sql-server t-sql

一个简单的问题,但我认为它值得放在这里寻求答案。

我有一个 T-SQL 语句:

select Name
from MyTable
where ID IN (1,2,3,4,5,.....)

在 SQL 中断之前,我可以在此选择中放入多少个逗号分隔的 ID?会坏掉吗?

最佳答案

列表的最大长度仅受最大批量大小的限制,即 65536 个网络数据包。网络数据包默认为 4 KB。这样就形成了大约 268 MB 的 T-SQL 文本。如果每个元素的平均长度为 10 位数字(包括分隔 ),,则可以在其中放置大约 2500 万个单独的值,仍然为查询的其余部分留出空间。

参见:Maximum Capacity Specifications for SQL Server

关于sql - 逗号分隔 IN 语句中的最大项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15961182/

相关文章:

Mysql 按 y 列的字母顺序排列所有具有 null x 列的行,然后按 y 列的字母顺序排列所有没有 null x 列的行

php - 如何将这些数据分组到数组中?

sql - UPDATE FROM 不适用于同一行的多次更新

sql-server - MS SQL Server 2008 更改触发器中插入的行值

sql-server - 在 JOIN 条件中使用 GUID 字符串会扰乱执行时间

excel - 使用 Excel 处理 SQL 数据(读/写)

java - 为什么 SQL 中的 CHAR(1) 占用 1 个字节,而 java 中的 char 占用 2 个字节?

sql - 使用 CTE 拆分表中的行

sql-server - TSQL 更新语句 MS SQL Server 2008 R2

sql - 日期时间变量的动态 sql 语法问题