У меня есть запрос с динамическими переменными, который я включаю или выполняю с помощью оператора 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 отображается NULL