你的位置:首页 > 软件开发 > 数据库 > SQL增强之Merge

SQL增强之Merge

发布时间:2016-07-04 23:00:08
SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx功能:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到 ...

SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx

功能:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。

我们看一个例子,假如,有一总产品列表,一个分店产品列表,需要从分店添加产品时更新总产品列表。

总产品表,分店产品表结构完全一致:

复制代码代码如下:if OBJECT_ID('Demo_AllProducts') is not null --this SQL is only for SQL Server 2008 select * from Demo_AllProducts --PKID DName DCode DDate if OBJECT_ID('Demo_Shop1_Product') is not null Create table Demo_Shop1_Product --this SQL is only for SQL Server 2008 select * from Demo_Shop1_Product --PKID DName DCode DDate 如果总产品表中不存在,则添加。 可选项:如果分店表中不存在,则从总产品表中删除分店中没有的行。如果这样,总产品表和分店表就完全同步了。实际操作中可能不需要删除目标表的行。 语句如下: 

复制代码代码如下:--确定目标表 --PKID DName DCode DDate --确定目标表 --PKID DName DCode DDate --PKID DName DCode DDate --定义表变量以存储输出 --确定目标表 --如果目标表中不存在,则从数据源插入目标表 --如果数据源的行在源表中不存在,则删除源表行 --返回上个Merge语句影响的行数 select * from @tableVarRecord; --影响的行数 --Deleted表的行 

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:SQL增强之Merge

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。