1

可能的重复:
在插入之前检查重复的插入语句

我想使用外键 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)
4

2 回答 2

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)
于 2012-07-10T15:01:29.953 回答
0

使用IF NOT EXISTS或者如果您想潜在地进行更新使用MERGE,它将根据您在语句中设置的规则决定是否进行插入、更新或可选的删除。一旦你掌握了语法,它就非常有用

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

于 2012-07-10T15:01:24.227 回答