SQL break while循环(如果存在)

时间:2016-08-26 15:59:21

标签: mysql sql loops while-loop

我正在尝试生成一些假地址。 我有一张表#Fakeaddess例如。

地址很少:

Id | Apartment | House 
---------------------
1  |    2      |  13 
---------------------
2  |    3      |  13
---------------------
3  |    4      |  13 
---------------------

等等。

我想要做的是为这所房子增加公寓

DECLARE @intFlag INT
SET @intFlag = 4
WHILE (@intFlag <=100)
BEGIN
 INSERT INTO #Fakeaddess 
    (Apartment, 
    House) 
    VALUES (
    @intFlag,
     13)
SET @intFlag = @intFlag + 1
END
GO 

哪个工作正常,但如果我通过示例再次运行相同的查询,它会创建具有新地址ID的新公寓,这是我不想要的。问题是如果已存在具有相同编号的公寓,如何停止查询运行。

我尝试使用

 Where Apartment not in
  (
  SELECT Apartment 
  FROM #Fakeaddess
 )

DECLARE @intFlag INT
SET @intFlag = 4
WHILE (@intFlag <=100)
BEGIN
 INSERT INTO #Fakeaddess 
    (Apartment, 
    House) 
    VALUES (
    @intFlag,
     13) 
 Where Apartment not in
  (
  SELECT Apartment 
  FROM #Fakeaddess
 )

SET @intFlag = @intFlag + 1
END
GO 

不起作用

DECLARE @intFlag INT
SET @intFlag = 4
WHILE (@intFlag <=100)
BEGIN
 INSERT INTO #Fakeaddess 
    (Apartment, 
    House) 
    VALUES (
    @intFlag,
     13) 
IF @intFlag in
  (
  SELECT Apartment 
  FROM #Fakeaddess
 )

BREAK

SET @intFlag = @intFlag + 1
END
GO 

也不起作用。

我在这里缺少什么?

0 个答案:

没有答案