自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析SQL Server 2008中的新語句:MERGE

數(shù)據(jù)庫 SQL Server
SQL Server 2008是SQL Server數(shù)據(jù)庫眾多版本之一,本文為大家介紹SQL Server 2008的新語句,即MERGE。

Microsoft SQL Server 2008將包含用于合并兩個(gè)行集(rowset)數(shù)據(jù)的新句法。根據(jù)一個(gè)源數(shù)據(jù)表對(duì)另一個(gè)數(shù)據(jù)表進(jìn)行確定性的插入、更新和刪除這樣復(fù)雜的操作,運(yùn)用新的MERGE語句,開發(fā)者只需使用一條命令就可以完成。

在對(duì)兩個(gè)表進(jìn)行信息同步時(shí),有三步操作必須要進(jìn)行。首先我們要處理任何需要插入目標(biāo)數(shù)據(jù)表的新行。其次是處理需要更新的已存在的行。***要?jiǎng)h除不再使用的舊行。這個(gè)過程中需要維護(hù)大量重復(fù)的邏輯,并可能導(dǎo)致微妙的錯(cuò)誤。

值得我們大家主意的是,Bob Beauchemin討論了MERGE語句,這個(gè)語句將上述的多個(gè)操作步驟合并成單一語句。以下是他給出的示例:

以下是引用的片斷:

merge [target] t
using [source] s on t.id = s.id
when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
when not matched then insert values(id,name,age) -- use "rowset2"
when source not matched then delete; -- use "rowset3"

大家可以看到,具體的操作是根據(jù)后面的聯(lián)合(join)的解析結(jié)果來確定的。在這個(gè)示例中,假如目標(biāo)和源數(shù)據(jù)表有匹配的行,就實(shí)行更新操作。如果沒有,就實(shí)行插入或者刪除操作來使目標(biāo)數(shù)據(jù)表和源數(shù)據(jù)表保持一致。

這個(gè)新句法的一個(gè)精妙之處是它在處理更新時(shí)的確定性。在使用標(biāo)準(zhǔn)的UPDATE句法和聯(lián)合時(shí),可能有超過一個(gè)源行跟目標(biāo)行匹配。在此情況下,無法預(yù)料更新操作會(huì)采用哪個(gè)源行的數(shù)據(jù)。

而我們?cè)谑褂肕ERGE句法時(shí),假如存在多處匹配,它會(huì)拋出一個(gè)錯(cuò)誤。這就需要開發(fā)者主意,要達(dá)到預(yù)想的目標(biāo),當(dāng)前的聯(lián)合條件還不夠十分明確。

【編輯推薦】

  1. SQL Server 2008中的數(shù)據(jù)壓縮功能
  2. SQL Server 2008數(shù)據(jù)庫引擎中幾個(gè)重要的Discontinued Feature
  3. SQL Server 2008基于策略的管理

 

責(zé)任編輯:迎迎 來源: 賽迪網(wǎng)
相關(guān)推薦

2010-10-14 09:32:52

SQL Server

2010-07-19 12:47:04

SQL Server

2011-08-19 10:40:27

SQL Server Merge命令

2011-05-24 13:33:45

2011-03-29 11:21:47

SQL Server 商業(yè)智能

2009-04-16 17:44:31

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2010-06-28 16:56:27

SQL Server

2010-12-06 09:26:23

SQL Server

2011-07-07 17:06:03

SQL Server

2010-11-12 13:08:36

動(dòng)態(tài)sql語句

2009-06-22 10:22:57

SQL Server

2012-04-06 10:13:08

SQLSQL Server

2012-04-16 09:55:38

SQL Server

2009-04-16 17:03:12

報(bào)表開發(fā)工具報(bào)表制作SQL Server

2013-03-13 09:53:50

SQL Server

2010-09-13 10:21:26

sql server2

2024-10-15 16:53:07

2021-08-16 08:12:04

SQLMerge用法

2021-05-28 07:36:18

MySQLWhereHive
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)