这是我的代码:
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等(的列表,并将迭代器的值@i
添加到名为场景ID的列中的每一行。我收到一个错误,说我需要:
声明标量值@i。
如有任何帮助,我们将不胜感激-谢谢!
您只需要像在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