我有一个包含动态变量的查询,该查询由EXECUTE sp_executesql语句启用或执行,并通过output子句输出到变量,但由于某种原因,它在此处输入代码,结果不可能在其中存储防冻剂该变量,只有NULL出现。如果我在翻译问题时犯了错误,我只会说西班牙语,很抱歉。
DECLARE @contador2 INT;
DECLARE @Num_reg2 INT;
DECLARE @Variable2 VARCHAR(55);
DECLARE @Parametro INT;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
SET @contador = 0;
SET @contador2= 1;
SET @Num_reg2=(SELECT COUNT(Concatenada) FROM [ConsultaIndicadores].[dbo].[Fechas]);
WHILE @contador2 <= @Num_reg2
BEGIN
SET @SQLString = N'SELECT Concatenada FROM [ConsultaIndicadores].[dbo].[Fechas] WHERE RegNumero = @ID';
SET @ParmDefinition = N'@ID int, @Variable varchar(55) OUTPUT';
SET @contador = @contador + 1;
EXECUTE sp_executesql @SQLString, @ParmDefinition, @ID = @contador, @Variable=@Variable2 OUTPUT;
SELECT @Variable2;
SET @contador2 = @contador + 1;
END;
问题是,如果直接对SELECT执行查询,查询结果将显示正确,但变量@ Variable2显示为空