[英]SQL: Insert Query Result into Temp Table inside While Loop
我正在尝试将 select 查询结果插入到 while 循环内的临时表中。 但是下面的查询给了我这个错误:
数据库中已经有一个名为“#TT”的 object。
DECLARE @V_START INT = 1;
DROP TABLE #TT
WHILE(@V_START < 4)
BEGIN
SELECT * INTO #TT
FROM Table
WHERE Column = @V_START;
SET @V_START = @V_START + 10;
END
SELECT * FROM #TT
每次执行循环时都会创建一个临时表,但是第一次执行临时表不存在命令运行成功,并且在第二轮循环执行中给出错误。 您可以像下面这样尝试:
DECLARE @V_START INT = 1;
DROP TABLE IF EXISTS #TT;
CREATE TABLE #TT
(
--your columns
)
WHILE(@V_START < 40)
BEGIN
INSERT INTO #TT
(
--your columns
)
SELECT --your columns
FROM Table
WHERE Column = @V_START;
SET @V_START = @V_START + 10;
END
SELECT * FROM #TT
但更好的解决方案是将 select 用于将数据插入临时表的条件:
DROP TABLE IF EXISTS #TT
SELECT * INTO #TT
FROM Table
WHERE Column % 10 = 0 AND Id < 10
SELECT * FROM #TT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.