可能重复:
T-SQL WHERE col IN(...)
SQL Server查询的最大大小是多少?(字符数)
IN子句的最大大小?我想我看到有关于Oracle有1000项限制的东西,但你可以用ANDing 2 INs来解决这个问题.SQL Server中的类似问题?
更新 那么,如果我需要从另一个系统(非关系数据库)中获取1000个GUID并对SQL Server执行"JOIN in code",那么最佳方法是什么?是否将1000个GUID列表提交给IN子句?还是有另一种技术可以更有效地运作?
我没有测试过这个,但我想知道我是否可以将GUID作为XML文档提交.例如
<guids>
<guid>809674df-1c22-46eb-bf9a-33dc78beb44a</guid>
<guid>257f537f-9c6b-4f14-a90c-ee613b4287f3</guid>
</guids>
Run Code Online (Sandbox Code Playgroud)
然后对Doc和Table做一些XQuery JOIN.效率低于1000项IN条款?
你有没有看到任何错误消息?
- SQL Server 2000
无法为视图或功能解析分配辅助表.
超出了查询中的最大表数(256).- SQL Server 2005
查询中的表名太多.允许的最大值为256.
如果是的话,你做了什么?
放弃了?说服客户简化他们的需求?非规范化数据库?
@(每个人都希望我发布查询):
我不想听起来像我在这里吹嘘,但问题不在于查询.查询是最佳的(或至少几乎是最佳的).我花了无数个小时来优化它们,寻找可以删除的每个列和每个表.想象一下,有200或300列的报告必须用一个SELECT语句填充(因为这是几年前它仍然是一个小报告时的设计).