想写一个sql语句,很长,主要是in后跟着无数个用户ID,(虽然实现方式很低级,但是还是凑合着用吧)
不知道sql最大长度是多少,看了 SQL Server 的最大容量规范,写的是
包含 SQL 语句的字符串的长度(批大小)的最大大小/数量:65,536 * 网络数据包大小
网络数据包大小是啥东东?你就不能明说最大长度吗是几吗? 微软,你就欺负我不懂TCP吧!
好吧,你不说,我自己测试。
写了一个字符串函数,形成 N个Guid字符串(相当于N*32长度),
然后用select * from table where id in (字符) 执行
1万个Guid字符串,在查询分析器通过,OK,看来支持32万长度(320K)
再加个数量级到10万个,也OK!支持3.2M长度
在加个数量级到100万个,也OK!!支持32M长度,不过太慢了,sql执行了5分钟才返回结果
在加个数量级到1000万个,也OK!!!支持320M长度,用了1小时3分钟才返回结果
没有时间,也没有必要做进一步测试了,
反正如果sql采用In(‘guid’,’guid’,’guid’)结构,则至少支持长度guid的个数为1000万个,总字符长度为3.2亿,320M
结论是你就放心用吧,你这一辈子恐怕是遇不到超出32000万字节长度的sql语句了!