在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