sql - 更新SQL后如何自动更新字段名称

标签 sql t-sql reporting-services ssrs-2008

我正在更改 .rdl 文件内数据集的命令文本:

enter image description here

我想知道如何更新 select 语句返回的结果字段:

enter image description here

我知道这些字段必须自动生成,所以我想知道是否可以在内联编辑 SQL 代码后立即更新它们?

最佳答案

通常,当有人想要查看命令文本中的数据时,他们希望将其作为最终用户的引用(据我所知)。您可能想修改它,但最终报告时您的第一个目标应该是:“我这样做是为了什么?”如果您的目标是在运行时动态创建,那么我会避免这种情况并提供一些其他建议:

  1. 将其程序化。如果您了解 SQL Server 中的操作方法,那么创建存储过程是一种方便快捷的方式来获得您想要的结果,并且如果您知道如何使用 SQL FU 来获得良好的结果,则可以对其进行优化。缺点是,如果您使用多个环境,则必须部署 TSQL 代码以及 RDL 文件。

  2. 使用表达式在运行时构建数据集。如果我被告知其他开发人员没有正确优化查询本身,他们就会提到这样做。我自己并不总是看到这样做的优势,而不是仅仅让你的谓词构造在源引擎上建立良好的索引来很好地工作。不管怎样,您都可以在运行时构建数据集。这类似于点击文本旁边的“fx”,然后输入类似的内容(假设您有一个名为 @Start 的变量):

    ="Select thing 
    from table 
    Where >= " & Parameters!Start.Value
    

    我还没有真正看到这是否真的比以下快得多:

    Select thing
    from table
    Where >= @Start
    

    但如果您只想动态构建它,它就在那里。

  3. 您可以尝试根据 select 语句一部分的参数动态构建表达式。 SSRS 的核心是“表达式”以及您可以用它们做什么。一旦你开始了解它们如何应用于一切,你就会发疯,可以说使用它们。但一般规则是您使用和依赖的它们越多,您的报告就会变得越慢。

我希望其中一些内容可能有所帮助,我首先会问的是由于需要事件驱动或与性能相关而动态的东西。

关于sql - 更新SQL后如何自动更新字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395391/

相关文章:

sql - 如何创建一个使用多个列中不同值的聚合作为参数的表?

mysql - 如何在 ssrs 中引用表内的另一个数据集?

SQL Server 2008 SSIS : Importing date field incorrectly (from Oracle)

sql - PostgreSQL 中的 WHERE 和 FILTER (WHERE) 有什么区别?

sql-server - 在 JOIN 条件中使用 GUID 字符串会扰乱执行时间

c# - 完全即发即忘存储过程 C# .NET Core

SharePoint 2010 多报表查看器 webparts - 很慢

mysql - 如何通过 openquery 和链接服务器在 VS 中使用 MySQL 数据为 SSRS 2008 报告创建数据集

sql - 根据插入的 ID 和 SQL 中的另一个非源列更新记录

sql - 为什么在我使用 ISNUMERIC() 时转换失败?