3

我需要能够从 4000 个客户那里返回数据。不幸的是,这 4000 个客户必须在多值参数中,因此我可以从列表中选择例如 10 个不同的客户,然后它将返回其数据(带有额外的过滤器,因此可以节省上下滚动的时间)。如果我错了,请纠正我,多值参数最多只能处理 1000 个值,虽然我可以在列表中看到所有 4000 个值,但它不会返回所有 4000(它在预览中,而不是在部署后)。我已尝试将其浏览至 900,它将返回全部 900。我确实理解用户勾选更多复选框是不合理的,但我仍然无法返回 3000+ 的其余部分顾客。请问最好的方法是什么?

4

2 回答 2

3

我们在开发环境 sql server 2008 R2 SP1 上也遇到了同样的问题。但我们找到了解决方法: <...>\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Web.config 在里面添加密钥:

<!-- language: xml -->
<add key="aspnet:MaxHttpCollectionKeys" value="10000" />

重新启动报告服务,它应该可以工作。不添加 aspnet:MaxHttpCollectionKeys 默认值为 1000。

资源

于 2012-06-01T10:47:18.550 回答
2

1000 行的限制来自于声明如下内容:

DECLARE @myTable MyTableType
INSERT INTO @myTable VALUES (1), VALUES (2), VALUES (3)
EXEC myProc @myTable

这被称为行构造函数语法,并且有一个限制。

您可以通过使用单插入或将行构造函数批处理在一起来解决此问题。虽然这似乎对性能来说可能很差,但 SQL Server 创建了一个所谓的“琐碎计划”——你可以在 Bob B 的优秀博客上阅读更多关于它的信息——这里这里

于 2012-05-31T10:54:15.563 回答