|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继SQLServer2008将包括用于兼并两个行集(rowset)数据的新句法。依据一个源数据表对另外一个数据表举行断定性的拔出、更新和删除如许庞大的操纵,使用新的MERGE语句,开辟者用一条命令就能够完成。
对两个表举行信息同步时,有三步操纵要举行。起首要处置任何必要拔出方针数据表的新行。其次是处置必要更新的已存在的行。最初要删除不再利用的旧行。这个过程当中必要保护大批反复的逻辑,并大概招致奇妙的毛病。
BobBeauchemin会商了MERGE语句,这个语句将上述的多个操纵步骤兼并成单一语句。他给出了以下的例子:
以下为援用的内容:
merge[target]t
using[source]sont.id=s.id
whenmatchedthenupdatet.name=s.name,t.age=s.age--use"rowset1"
whennotmatchedtheninsertvalues(id,name,age)--use"rowset2"
whensourcenotmatchedthendelete;--use"rowset3"
如你所见,详细操纵是依据前面的团结(join)的剖析了局来断定的。在这个例子中,假如方针和源数据表有婚配的行,就实施更新操纵。假如没有,就实施拔出大概删除操纵来使方针数据表和源数据表坚持分歧。
这个新句法的一个美好的地方是它在处置更新时切实其实定性。在利用尺度的UPDATE句法和团结时,大概有凌驾一个源行跟方针行婚配。在这类情形下,没法意料更新操纵会接纳哪一个源行的数据。
而当利用MERGE句法时,假如存在多处婚配,它会抛出一个毛病。这就提示了开辟者,要到达料想的方针,以后的团结前提还不敷明白。
本文搜集收拾自互联网,若您是原文作者,请来信变动作者及出处Post#chinaz.com(把#改成@)
这里我们讨论用binlog来实现闪回的方案。 |
|