Я знаю, что этот вопрос задан, и я уже нашел некоторые решения в Интернете .. но я все еще не могу заставить его работать должным образом.Сохраните результат динамического запроса в переменной
Так что я должен сделать запрос SELECT и сохранить результат в переменной (я НЕ хочу переменную таблицы). Моя проблема в том, что имя таблицы также является переменной. Имя таблицы соответственно изменяется на некоторое время, вот мой код:
DECLARE @numRecord INT;
DECLARE @maxMacNumber INT;
SET @maxMacNumber = 500;
DECLARE @mac INT;
SET @mac = 0;
DECLARE @res FLOAT;
DECLARE @ap INT;
SET @ap = 0;
DECLARE @apString VARCHAR(2);
DECLARE @numRecordString VARCHAR(20);
DECLARE @tablename VARCHAR(500);
DECLARE @sql NVARCHAR(500);
DECLARE @varDefinition NVARCHAR(200);
WHILE @mac <= @maxMacNumber
BEGIN
SET @numRecord = 6 + @mac * 390;
SET @ap = 0;
WHILE @ap < 2
BEGIN
SELECT @apString = CONVERT(VARCHAR,@ap);
SELECT @numRecordString = CONVERT(VARCHAR, @numRecord);
SELECT @rssiString = CONVERT(VARCHAR, @rssi);
SET @tablename = 'APDB.dbo.AP' + @apString;
SET @sql = 'SELECT RSSI FROM ' + @tablename + ' WHERE ID=' + @numRecordString;
SET @varDefinition = N'@res FLOAT OUTPUT';
EXEC sp_executesql @sql, @varDefinition, @res = @res OUTPUT;
PRINT @res;
-- HERE I WILL DO SOMETHING WITH @res
END;
END;
Проблема заключается в том, что он не печатает ничего, когда я PRINT @res
...