小编Lin*_*ead的帖子

使用内联函数在SSRS中创建数据集

我有一个基于SQL的报告,我正在从Crystal Reports迁移到SSRS.旧方法使用调用存储函数的存储过程.新方法的目的是将所有报告逻辑嵌入SSRS报告中.这背后的原因是存储过程和函数不是目标数据库的一部分.我们不希望有一个额外的数据库只包含一些存储的函数和过程.

现在的基本结构是:

select (a bunch of fields)
from (a bunch of joins)
where (conditions)
    and specific_value in (select value
                           from stored_function(inputs)
                          )
Run Code Online (Sandbox Code Playgroud)

存储的函数执行一些分隔符处理.我需要在SSRS运行此,没有在数据库中存储任何东西.我可以将存储过程转换为SSRS中的数据集,但我无法弄清楚如何处理stored_function.

-----编辑-----以下是问题中的代码:

CREATE FUNCTION [dbo].[fn_split] (
    @SourceString sql_variant,
    @Delimiter nvarchar(10) = N',')
    RETURNS @Values TABLE(Position smallint IDENTITY, cValue varchar(2000) , ncValue nvarchar(2000))
AS
BEGIN
    DECLARE @NormalString varchar(2000), @NationalString nvarchar(2000),
        @NormalDelimiter varchar(10), @NationalDelimiter nvarchar(10),
        @IsNationalChar bit, @Position int,
        @NormalValue varchar(2000), @NationalValue nvarchar(2000)
    SET @Delimiter = COALESCE(@Delimiter, N',')
    SET @IsNationalChar = CASE
                WHEN SQL_VARIANT_PROPERTY(@SourceString,'BaseType') IN ('char','varchar')
                THEN …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures sql-function reporting-services

5
推荐指数
1
解决办法
426
查看次数