Обновить значение столбца с помощью итератора al oop? - PullRequest
0 голосов
/ 14 июля 2020

Вот мой код:

DECLARE @i int
DECLARE @selec nvarchar(max)

SET @i = 0

WHILE @i <= 25
    BEGIN
        SET @selec = 'UPDATE BOMT'+ LTRIM(STR(@i+1)) + '
        SET   [Scenario ID] = @i'
        SET @i = @i+1
        EXEC(@selec)    
    END

Я пытаюсь перебрать список из 25 таблиц, которые у меня есть (BOMT1, BOMT2, BOMT3, et c) и добавить значение итератора , @i, в каждую строку столбца, называемого идентификатором сценария. Я получаю сообщение об ошибке, в котором говорится, что мне нужно:

объявить скалярное значение @ i.

Любая помощь будет очень принята - спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Вам просто нужно немного изменить ситуацию, выведя вашу переменную за пределы строки, как вы это делали в инструкции select.

Попробуйте это

WHILE @i <= 25
    BEGIN
        SET @selec = 'UPDATE BOMT'+ LTRIM(STR(@i+1)) + '
        SET   [Scenario ID] = ' + LTRIM(STR(@i+1))
        SET @i = @i+1
        EXEC(@selec)   
    END
...