INSERT INTO @Temp_Table 来自多值 SSRS 参数的 VALUES
INSERT INTO @Temp_Table VALUES from multi value SSRS Parameter
我正在使用 ssrs 报告生成器构建报告,其中代码中有一部分我必须插入临时 table 一些值。这些值应该从多值参数 DatabaseName 加载。
我尝试了以下代码:
DECLARE @Rep_Temp TABLE(SurrogateKeyIDENTITY int not null IDENTITY (1,1),tempDBName nvarchar(100) NOT NULL);
INSERT INTO @Rep_Temp (tempDBName) VALUES (@DatabaseName);
只有当我select一个值时它才有效,当我select多个值时它会报错。
我也尝试了以下代码但没有成功:
INSERT INTO @Rep_Temp (tempDBName) VALUES (join(Parameters!DatabaseName.Value,","));
感谢您的帮助。
此致,
你好,你能试试这个解决方案吗?
我是按照下面的方法解决的:
- 我在数据集中添加了参数:
@DBNameString = join(Parameters!DatabaseName.Value,",")
- 我尝试在插入 table 时使用 STRING_SPLIT,但我不能这样做,因为我有 SQL Server 2012 "is not a recognized built-in function name"。相反,我做了以下事情:
声明@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
此致,
我正在使用 ssrs 报告生成器构建报告,其中代码中有一部分我必须插入临时 table 一些值。这些值应该从多值参数 DatabaseName 加载。 我尝试了以下代码:
DECLARE @Rep_Temp TABLE(SurrogateKeyIDENTITY int not null IDENTITY (1,1),tempDBName nvarchar(100) NOT NULL);
INSERT INTO @Rep_Temp (tempDBName) VALUES (@DatabaseName);
只有当我select一个值时它才有效,当我select多个值时它会报错。
我也尝试了以下代码但没有成功:
INSERT INTO @Rep_Temp (tempDBName) VALUES (join(Parameters!DatabaseName.Value,","));
感谢您的帮助。
此致,
你好,你能试试这个解决方案吗?
我是按照下面的方法解决的:
- 我在数据集中添加了参数:
@DBNameString = join(Parameters!DatabaseName.Value,",")
- 我尝试在插入 table 时使用 STRING_SPLIT,但我不能这样做,因为我有 SQL Server 2012 "is not a recognized built-in function name"。相反,我做了以下事情:
声明@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
此致,