SQL合并与目标不匹配,与源不匹配

时间:2016-09-21 04:01:14

标签: sql sql-server sql-merge

需要一点帮助,我的SQL几乎不存在......

//Conform Protocol Class:VC1, VC2Delegate { //implement delegate method func doneClicked(val:String) { //assign value to textfield vc1TextField.text = val } override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "MySegueFromVC1ToVC2" { if let destVC = segue.destinationViewController as? VC2 { //assign delegate to VC1 VC2.delegate = self } } } } NOT MATCHED BY SOURCE

之间有何区别?

例如:

NOT MATCHED BY TARGET是否意味着目标中的记录不存在于源中? - 所以我们可以删除他们?

WHEN NOT MATCHED BY SOURCE - 表示记录存在于源中但不存在于目标中?所以我们可以插入吗?

2 个答案:

答案 0 :(得分:20)

当没有与目标匹配时 - 您应该使用此子句将新行插入目标表中。您插入表中的行是源表中的那些行,目标中没有匹配的行。

当不与源匹配时 - 如果要从目标表中删除与源表中的行不匹配的行

答案 1 :(得分:0)

谨慎使用,因为您可能需要进一步限定 WHEN NOT MATCHED BY SOURCE

例如,如果 TARGET 表有一列 SOURCE 没有 .. 并且您在上述插入期间设置该目标列.. 那么您可能想要定义它约束:

WHEN NOT MATCHED BY SOURCE AND (TARGET.SomeColumn = yada)