【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

SQL Server 2008 的 MERGE 句法

  • 2007-07-19
  • 本文字数:623 字

    阅读完需:约 2 分钟

SQL Server 2008 将包含用于合并两个行集(rowset)数据的新句法。根据一个源数据表对另一个数据表进行确定性的插入、更新和删除这样复杂的操作,运用新的 MERGE 语句,开发者用一条命令就可以完成。

对两个表进行信息同步时,有三步操作要进行。首先要处理任何需要插入目标数据表的新行。其次是处理需要更新的已存在的行。最后要删除不再使用的旧行。这个过程中需要维护大量重复的逻辑,并可能导致微妙的错误。

Bob Beauchemin 讨论了 MERGE 语句,这个语句将上述的多个操作步骤合并成单一语句。他给出了如下的例子:

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”

如你所见,具体操作是根据后面的联合(join)的解析结果来确定的。在这个例子中,如果目标和源数据表有匹配的行,就实行更新操作。如果没有,就实行插入或者删除操作来使目标数据表和源数据表保持一致。

这个新句法的一个美妙之处是它在处理更新时的确定性。在使用标准的 UPDATE 句法和联合时,可能有超过一个源行跟目标行匹配。在这种情况下,无法预料更新操作会采用哪个源行的数据。

而当使用 MERGE 句法时,如果存在多处匹配,它会抛出一个错误。这就提醒了开发者,要达到预想的目标,当前的联合条件还不够明确。

查看英文原文: MERGE Syntax for SQL Server 2008

2007-07-19 05:35641
用户头像

发布了 225 篇内容, 共 60.3 次阅读, 收获喜欢 49 次。

关注

评论

发布
暂无评论
发现更多内容

Elephant Swap的LaaS方案迅速崛起,构建全新DeFi2.0协议

EOSdreamer111

【函数式编程实战】(二)代码的行为参数化传递

小明Java问道之路

函数式接口 Lambda 函数式编程 行为参数化 7月日更

另类加法与走方格的方案数

未见花闻

7月月更

Envoy分布式链路追踪

阿泽🧸

envoy 7月月更

快速搭建个人博客网站——Hexo

空城机

Hexo 个人博客 7月月更

一个15年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害

Jerry Wang

后台开发 SAP abap Netweaver 7月月更

附答案 | 最强Python面试题之Python基础题(1)

KEY.L

7月月更

[ kitex 源码解读 ] Kitex 扩展性设计思路

baiyutang

Go golang 云原生 微服务框架 kitex

深浅拷贝

Jason199

js 深拷贝 浅拷贝 7月月更

Docker 安装 Nginx 部署前端项目

宁在春

nginx Docker Vue 7月月更

【Docker 那些事儿】初始 Kubernetes 容器管理平台(下)

Albert Edison

Docker Kubernetes 容器 云原生 7月月更

中国经济网:“元宇宙”炙手可热

CECBC

【刷题记录】17. 电话号码的字母组合

WangNing

7月月更

SeekTiger的Okaleido有大动作,生态通证STI会借此爆发?

EOSdreamer111

【愚公系列】2022年07月 Java教学课程 06-常量

愚公搬代码

7月月更

元宇宙浪潮震撼来袭,抓住时机,齐心协力

CECBC

超干货!彻底搞懂单工、半双工、全双工的区别与联系

wljslmz

网络技术 7月月更 通信模式 双工

React函数组件详解

恒山其若陋兮

7月月更

Python干货篇——列表及列表常用内置函数

Java学术趴

7月日更

Ansible项目最佳实践

穿过生命散发芬芳

ansible 7月月更

从源码上学习 MockMvc 的使用

安逸的咸鱼

Java 源码 Mock测试框架 7月月更

振奋人心!元宇宙!下一代互联网的财富风口

CECBC

Elephant Swap的LaaS方案优势分析,致eToken表现强势

BlockChain先知

数据中台建设误区

奔向架构师

数据中台 7月月更

在 SAP 云平台上部署和运行 Docker 应用

Jerry Wang

Docker Kubernetes 云原生 SAP 7月月更

Elephant Swap的LaaS方案优势分析,致eToken表现强势

股市老人

Vue Cli Study

程序员海军

vuecli 7月月更

音频的价值、AI Codec 的意义与算法能力的边界丨一期一会 • 音频工程师专场

声网

音频技术 一期一会

用 React 结合 SAP UI5 Web Components 来开发 SAP Fiori 应用

Jerry Wang

JavaScript 前端开发 SAP SAP UI5 7月月更

机器学习-集成学习

AIWeker

机器学习 7月月更

SeekTiger的Okaleido有大动作,生态通证STI会借此爆发?

股市老人

SQL Server 2008的MERGE句法_.NET_Jonathan Allen_InfoQ精选文章