在SQL Server 2008中,是否有插入行的方法,同时省略导致外键约束失败的那些行?如果约束失败,插入值或忽略行
E.g.我有一个类似于此的插入语句:
insert into tblFoo(id, name, parent_id, desc) values
(1, 'a', 1, null),
(2, 'c', 3, 'blah'),
....;
parent_id是fk到另一个表。那我怎么才能让sql server跳过那些fk列无效的行呢?
更新我想让它自动工作,而不必先过滤掉那些违反fk约束的行。原因是因为插入语句是由程序生成的,所以事先并不知道每个表上存在哪些外键。
+1 INNER JOIN to parentTable on id可能稍微更优化。不过这是一个很好的解决方案。 – brian
@brian我编辑了答案以反映您的优化 – dcarneiro