如何检查另一个表中是否存在记录,如果不存在则添加

时间:2012-07-10 14:58:02

标签: sql database select exists

  

可能重复:
  Insert statement that checks for duplicate before insert

我想使用外键b_id检查问题日志表中是否存在构建ID。如果它不存在,那么我想将其添加到问题日志表中。 我有下面的代码,但这只是检查问题日志表中哪些建筑物不在...我怎么能插入?非常感谢。我正在使用SQL Server 2008。

select b.b_id from building 
where not exists(select b.b_id from issue_log as l where b._id = l.b_id)

2 个答案:

答案 0 :(得分:5)

这样的东西?

INSERT INTO issue_log(b_id)
SELECT b.b_id FROM building b
WHERE NOT EXISTS(SELECT l.b_id FROM issue_log AS l WHERE b.b_id = l.b_id)

答案 1 :(得分:0)

使用IF NOT EXISTS或者如果您希望进行更新,请使用MERGE根据您在中设置的规则决定是否插入,更新或删除声明。一旦你理解了语法,它就非常有用了

MSDN:http://technet.microsoft.com/en-us/library/bb510625(v=sql.105).aspx