如果NOT EXISTS则INSERT INTO一个表,然后INSERT将重复记录插入另一个表

时间:2011-10-12 16:50:10

标签: sql sql-server-2008 stored-procedures

我正在编写过去2天的存储过程,但我无法弄明白。

任务:我有一个表“table 1”,其中有一些行,其中“Appointment No”为主要ID。

还有另一个表“table 1_copy”,它与表1相同,主键不是必需的。

我想在“表1”中插入“名字”和“姓氏”。但是,如果该记录已存在于“”表1“中,则应将这些重复记录插入”tabel 1_copy“,将非重复记录插入”表1“

因此,简而言之,我将带有新“约会号”的新记录插入“表1”,并将表1中已存在的重复约会no插入表1_copy。

我可以找出插入到if NOT EXISTS PART但是我正在努力捕获重复并插入“table 1_copy”

请帮帮我。

提前致谢

2 个答案:

答案 0 :(得分:5)

以下内容应该有效:

IF NOT EXISTS (SELECT * FROM table_1 WHERE FirstName=@FirstName AND LastName=@LastName)
   INSERT INTO table_1 ... 
ELSE
   INSERT INTO table_1_copy ...

答案 1 :(得分:1)

我猜你可以做类似下面的事情

 IF NOT EXTIST (SELECT 'X' FROM TABLE1 WHERE FirstName = @FirstName AND LastName =    @LastName)
 BEGIN
INSERT INTO TABLE1 (BLAH, BLAH)
 END
 ELSE
INSERT INTO TABLE1_COPY 
SELECT BLAH, BLAH FROM TABLE1 WHERE FirstName = @FirstName AND LastName = @LastName
 END