У меня есть таблица переменных:
DECLARE @A_Table TABLE(ID INT, att1 VARCHAR(100), att2 nvarchar(200))
Я хочу создать динамический sql, поэтому я вставляю в эту таблицу некоторые данные (все внутри цикла):
WHILE (@i <= 100) BEGIN
SELECT @other_att = NAME FROM @other_Table where ID = @i;
SET @sql = 'INSERT ' + @A_Table+ '(ID,att1,att2) SELECT '+CAST(@i AS VARCHAR)+' , '''+ @other_att+''', SUM('+ @other_att') FROM '+ @EVEN_OTHER_Table;
EXEC (@sql);
END
sqlкаждый раз будет выглядеть так:
INSERT INTO @A_Table SELECT 1 , 'subject', SUM(subject)
INSERT INTO @A_Table SELECT 2 , 'age', SUM(age)
INSERT INTO @A_Table SELECT 3 , 'sex', SUM(sex)....
И после выполнения этого: SO я получу:
@A_Table:
id att1 att2
1 subject 4.3
2 age 4.5
3 sex 4.1
, но получаю ошибку:
Msg 137, Level 16, State 1, Line 48
Must declare the scalar variable "@A_Table".
SOчто такое синтаксис для динамической вставки в таблицу переменных?
Хорошо, я понял это.