【问题标题】:INSERT INTO @Temp_Table VALUES from multi value SSRS ParameterINSERT INTO @Temp_Table VALUES 从多值 SSRS 参数
【发布时间】:2019-12-30 13:19:08
【问题描述】:

我正在使用 ssrs 报告生成器构建报告,其中在代码中有一部分我必须在临时表中插入一些值。这些值应从多值参数 DatabaseName 加载。 我尝试了以下代码:

DECLARE @Rep_Temp TABLE(SurrogateKeyIDENTITY int not null IDENTITY (1,1),tempDBName nvarchar(100) NOT NULL);
INSERT INTO @Rep_Temp (tempDBName) VALUES (@DatabaseName);

只有当我选择一个值时它才有效,当我选择多个值时它会出错。

我也尝试了以下代码,但没有成功:

INSERT INTO @Rep_Temp (tempDBName) VALUES (join(Parameters!DatabaseName.Value,","));

感谢您的帮助。

最好的问候,

【问题讨论】:

    标签: sql reporting-services report ssrs-2008 ssrs-2012


    【解决方案1】:

    【讨论】:

    • 我试过了,我得到了错误 Invalid Object name 'dbo.splitstring',在示例中他们使用的是 Visual Studio,而我使用的是 Report Builder 3.0,您能否建议正确的语法?跨度>
    • DECLARE @dbname NVARCHAR(100) SET @dbname = 'DB1,DB2,DB3' DECLARE @Rep_Temp TABLE(SurrogateKeyIDENTITY int not null IDENTITY (1,1),tempDBName nvarchar(100) NOT NULL); INSERT INTO `@Rep_Temp (tempDBName) select(@dbname) 这会将多个值插入到临时表中
    • 我也建议试试这个解决方案。也许您可以使用 =join(Parameters!.Value,",") 在您的查询中,然后您可以像这样引用该值: where yourColumn in (@)stackoverflow.com/questions/512105/…
    • @Atahan Ceylan,它仅在@dbname 包含一个值示例集@dbname='DB1' 时才有效,如果我输入多个值,我会收到错误 Incorrect syntax near ','
    【解决方案2】:

    我按照以下方法解决:

    1. 我在数据集中添加了参数:@DBNameString = join(Parameters!DatabaseName.Value,",")
    2. 我尝试在插入表时使用 STRING_SPLIT,但由于我的 SQL Server 2012“不是可识别的内置函数名称”,我无法使用。相反,我做了以下事情:

    DECLARE @Rep_Temp TABLE(SurrogateKeyIDENTITY int not null IDENTITY (1,1),tempDBName nvarchar(100) NOT NULL);

    DECLARE @DBs VARCHAR(500);
    DECLARE @DBName VARCHAR(500);
    DECLARE @charSpliter CHAR;
    
    SET @charSpliter = ','
    SET @DBs = @DBNameString + @charSpliter;
    
    WHILE CHARINDEX(@charSpliter, @DBs) > 0
    BEGIN
    SET @DBName = SUBSTRING(@DBs, 0, CHARINDEX(@charSpliter, @DBs))
    SET @DBs = SUBSTRING(@DBs, CHARINDEX(@charSpliter, @DBs) + 1, LEN(@DBs))
    
    INSERT INTO @Rep_Temp (tempDBName) VALUES (@DBName);    
    END 
    

    最好的问候,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 2012-07-06
      • 1970-01-01
      • 2016-06-09
      • 2011-07-17
      • 2015-11-17
      • 1970-01-01
      • 2020-06-16
      相关资源
      最近更新 更多