【问题标题】:SSRS returning different results than the stored procedureSSRS 返回的结果与存储过程不同
【发布时间】:2018-08-12 07:01:23
【问题描述】:

我有一个可以从 Management Studio 调用的存储过程,它始终返回 56 行。但是,当我从 ssrs 2008 内部执行查询时,我得到了 61 行。存储过程使用游标并在其中包含一些打印语句。

谢谢,

【问题讨论】:

  • 程序有参数吗?
  • 就我而言,是的(我遇到了同样的问题,但反过来 - 从 SSRS 运行时记录不足),但在两个地方都提供了相同的参数。

标签: sql-server-2008 reporting-services ssrs-2008


【解决方案1】:

当我有一个存储过程返回警告消息时,我遇到了类似的问题。它导致问题仅在我的 SSRS 数据集/报告中返回不一致的结果。我将 ansi-warnings 设置为关闭,我的问题就消失了。您可能想注释掉您的打印语句并尝试一下。

谢谢, 史蒂夫

【讨论】:

  • 你在哪里设置 asni 警告?
  • ansi,即(不是ansi,也不是antsy)
  • 您可以在命令窗口“ALTER DATABASE AdventureWorks2012 SET ANSI_NULL_DEFAULT OFF; GO”中执行此操作,或者您可以右键单击数据库->属性->选项 Ansi NULL Default。将其设置为 false。
【解决方案2】:

我会做两件事。

  1. 检查 SSRS 报告是否未使用缓存数据 - 它经常使用。
  2. 如果这没有帮助...在您的 SP 中写入数据库中的表,参数进入和输出的数据。这应该会为您指明正确的方向。

【讨论】:

    【解决方案3】:

    在 SSRS 中,我试图将 null 作为参数值传递给存储过程。似乎无论我尝试了什么,SSRS 都在使用 'null' ,这在存储过程中与 @Parameter is null 不起作用。

    我创建了一个名为@Rs_null 的报告参数,默认值为 (null)。然后我可以使用它。

    (创建报告变量并不好,因为我无法传递存储过程参数。)

    另见How to use stored proc with null parameters in SSRS?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多