我有几年需要整理的桌子。我尝试根据代码belove使用WHILE循环解决此问题:
declare @t int = 10
while @t <= 11
--Erase tables if they exist.
if object_id(['a\b].rot@t', 'U') is null
drop table [a\b].rot@t
if object_id(['a\c].rot@t', 'U') is null
drop table [a\c].rot@t
--Create tables.
select *
into rot@t
from rot_ftg_@t
insert into rot@t
select *
from rot_ens_@t
--Update macrovar.
set @t = @t + 1
end
运行此脚本时,出现以下错误消息: “消息102,第15层,州1,第31行 'end'附近的语法不正确。”
我使用的是msn sql server,它的版本似乎是14.0。
短循环时间间隔仅供测试,对不起,由于公司规定我无法提供任何示例数据。
我将不胜感激,在此先感谢您!
问候 MarJer
答案 0 :(得分:1)
您丢失了begin语句(假设您的其余代码很好,那应该可以解决针对begin / end的错误。
while @t <= 11
BEGIN
--Erase tables if they exist.
if object_id(['a\b].rot@t', 'U') is null
drop table [a\b].rot@t
if object_id(['a\c].rot@t', 'U') is null
drop table [a\c].rot@t
--Create tables.
select *
into rot@t
from rot_ftg_@t
insert into rot@t
select *
from rot_ens_@t
--Update macrovar.
set @t = @t + 1
END