相关疑难解决方法(0)

SQL Server查询的最大大小?IN子句?有更好的方法吗?

可能重复:
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 t-sql sql-server limits

90
推荐指数
4
解决办法
17万
查看次数

您是否遇到过SQL Server无法执行的查询,因为它引用了太多表?

你有没有看到任何错误消息?

- SQL Server 2000

无法为视图或功能解析分配辅助表.
超出了查询中的最大表数(256).

- SQL Server 2005

查询中的表名太多.允许的最大值为256.

如果是的话,你做了什么?

放弃了?说服客户简化他们的需求?非规范化数据库?


@(每个人都希望我发布查询):

  1. 我不确定我是否可以在答案编辑窗口中粘贴70千字节的代码.
  2. 即使我可以这样做也无济于事,因为这70千字节的代码将引用我或者必须发布的20或30个视图,否则代码将毫无意义.

我不想听起来像我在这里吹嘘,但问题不在于查询.查询是最佳的(或至少几乎是最佳的).我花了无数个小时来优化它们,寻找可以删除的每个列和每个表.想象一下,有200或300列的报告必须用一个SELECT语句填充(因为这是几年前它仍然是一个小报告时的设计).

database sql-server sql-server-2005 sql-server-2000

18
推荐指数
1
解决办法
8364
查看次数