【问题标题】:SSRS Deployed Report Not Executing WHERE clauseSSRS 已部署报告未执行 WHERE 子句
【发布时间】:2020-08-15 00:44:58
【问题描述】:

我有一个在 Visual Studio 2017 中完美运行的 SSRS 报告。

但是当我部署它时,部署的报告会返回所有数据,忽略 WHERE 子句中的过滤器。我知道这是因为当我从 Visual Studio 报告中删除 WHERE 子句时,数据与部署的报告匹配。

此报告关闭共享数据源;数据集不是共享的。

即使是简单的WHERE tbl.flag = 'Y' 似乎也不会对部署的报告做任何事情。

为什么 SSRS 不能识别整个 SQL?

不是真正的 SSRS 专家,我只是根据一些 YT 教程制作它们并将它们部署到提供给我的链接,因此感谢任何建议或研究链接。

【问题讨论】:

  • 您确定它实际上是在更新服务器上的报告吗?如果我不得不猜测,似乎该报告最初是在没有 WHERE 子句的情况下部署的。每次您尝试更新它,因为实际上并没有更新服务器上的报告。
  • 我不认为服务器使用网络上保存的物理文件,而是将其存储在内部某个地方。因此,如果您只是更新物理文件,我认为不会更新它正在使用的存储副本。

标签: sql reporting-services report


【解决方案1】:

在 Visual Studio 的报表项目属性中检查服务器设置。

如果它们看起来正常,则删除报告的服务器副本并重新部署。

如果报告没有再次出现,则证明报告要么

一个。未部署(您应该在 Visual Studio 输出窗口中看到错误),或者 湾。它正在部署到您认为应该在的位置。

您可以从门户网站按名称搜索报告,它会搜索服务器上的所有文件夹,因此如果部署成功,您可以通过这种方式找到它。

【讨论】:

    【解决方案2】:

    我发现问题在于我在 SQL 中的一些内联 cmets。我在WHERE 子句上方使用破折号-- 解释了过滤器。一旦我删除它,报告就会正确执行。

    我还能够将评论样式更改为/* <my comment> */,并且它执行正确。似乎其他样式的带有破折号的 cmets 使服务器认为之后的所有内容都是注释,因此没有执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多