表INSERT使用While循环

时间:2014-09-29 15:53:03

标签: sql-server-2008 loops while-loop insert

虽然我在这里阅读了很多答案,但这是我关于stackoverflow的第一个问题,而且我是SQL的新手。我试图使用WHILE循环(SQL Server 2008)将一些记录插入表中。这是我开始的数据:

SeasID   FacilityID   PL   Zone   Section   Row   FromSeat   ToSeat
11       17           1    g2     cf        a     1          5
32       18           14   w13    r2        c     10         12

我需要为每个独特的座位插入一行到新表中。这是我要插入的内容:

SeasID   FacilityID   PL   Zone   Section   Row   Seat
11       17           1    g2     cf        a     1
11       17           1    g2     cf        a     2
11       17           1    g2     cf        a     3
11       17           1    g2     cf        a     4
11       17           1    g2     cf        a     5

32       18           14   w13    r2        c     10
32       18           14   w13    r2        c     11
32       18           14   w13    r2        c     12

我尝试了很多东西,但我认为我还不太了解循环。你能提供的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

快速和脏(将1000更改为可能的最高座位数。持久号码表有帮助)

;WITH N(Number) AS (SELECT 1 AS Number UNION ALL SELECT Number + 1 FROM N WHERE Number < 1000) 
SELECT TheTable.*, N.Number AS Seat
FROM TheTable  
INNER JOIN N
ON ToSeat >= N.Number AND FromSeat <= N.Number
ORDER BY N.Number
OPTION(MAXRECURSION 1000)