ado.net访问MSSQL最多可以使用多少个参数?

iamybj 2011-12-20 03:38:51
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,,,)
但是现在有个疑问,目前在国内来说,总更大约有30多个参数需要添加,但是随着公司业务的不停扩展,在海外业务也发展起来,那按照每个国家有50个参数,200个国家来说,酒的需要10000个参数。。。
问题是,in(....)里面,能用10000个参数吗?
...全文
136 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iamybj 的回复:]
引用楼主 iamybj 的回复:
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,,,)
但是现在有个疑问,目前在国内来说,总更大约有30多个参数需要添加,但是随着公司业务的不停扩……
[/Quote]

-晴天 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 iamybj 的回复:]

引用 8 楼 qianjin036a 的回复:

引用 5 楼 iamybj 的回复:

引用楼主 iamybj 的回复:
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,……

但是现在有个疑问,目前在国内来说,总更大约有……

如果真有这种情况,那只能说明MSSQL设计的差。
[/Quote]

高人哪!

iamybj 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qianjin036a 的回复:]

引用 5 楼 iamybj 的回复:

引用楼主 iamybj 的回复:
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,,,)
但是现在有个疑问,目前在国内来说,总更大约有……
[/Quote]
如果真有这种情况,那只能说明MSSQL设计的差。
-晴天 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iamybj 的回复:]

引用楼主 iamybj 的回复:
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,,,)
但是现在有个疑问,目前在国内来说,总更大约有30多个参数需要添加,但是随着公司业务的不停……
[/Quote]

兄弟,不好意思,实际上,在能用临时表又能用 in 的地方,用临时表的效率要比用 in 高得不是一个数量级,特别是在 in 里面的东西很多的时候.
yanyuchonglou 2011-12-20
  • 打赏
  • 举报
回复
但SQL语句的长度是有限制的,你这种用法只可保一时之需,并非一世可用之法啊。
唐诗三百首 2011-12-20
  • 打赏
  • 举报
回复
原来这样,
iamybj 2011-12-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 iamybj 的回复:]
本人现在有个程序,已经做完了,但是有点疑问。
程序的sql语句中,where 子句里有一个 in (,,,,)的限制条件,我使用的是参数,接受一个数组,然后按照数组的大小循环添加参数名和参数值:
in (@p1, @p2, @p3 .....@p1000, ,,,)
但是现在有个疑问,目前在国内来说,总更大约有30多个参数需要添加,但是随着公司业务的不停扩展,在海外业务也发展起来,那按照每个……
[/Quote]

谁告诉你in效率低了?谁让你用临时表了? 谁用临时表,说明谁对数据库不熟悉,技术差~!
我发现只用过MSSQL的同学,很喜欢用临时表。
人家数据库自己就能把in(....)里面的各个参数组织成一个表来和别的表关联,还用得着你自己动手写临时表?
当然了MSSQL水平本来很差的,被Oracle等拉的不是一个水平上的,直到今年,MSSQL才开始追赶,不然太操蛋了,这些年来,云计算,大规模数据的兴起,造成MSSQL2000版本之前的几乎没了用武之地,所以MSSQL才不得不发力重新设计2005\2008.
勿勿 2011-12-20
  • 打赏
  • 举报
回复
你要问我 ado.net访问MSSQL参数有几个,我会告诉你很多,很多!
叶子 2011-12-20
  • 打赏
  • 举报
回复
那按照每个国家有50个参数,200个国家来说,就需要10000个参数?
50个参数加上1个国家参数应该是51个呀?

干什么搞10000的参数,写起来也很麻烦呀...
唐诗三百首 2011-12-20
  • 打赏
  • 举报
回复
最好存为临时表,然后inner join [临时表]的方式来判断.
叶子 2011-12-20
  • 打赏
  • 举报
回复
1、in的效率本来就不好。
2、如果是SQL语句的话,没有听说过这个in后面的参数个数有限制。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧