学会使用Merge语句
在SQL Server 2008中,有一个新的MERGE语句让我有一点点激动。SQL Server开发者在编写修改表的存储过程时,会非常喜欢这个新的T-SQL语法。使用“IF-THEN”来决定一个数据行是否需要被插入、更新或删除的时代已经过去了。MERGE让我们可以一次搞定所有的逻辑和修改。而且,你可以一次就能搞定整个数据集的对比,不用再逐行进行对比。以下是使用MERGE语句的一个例子:
MERGE tbl_address AS current_addresses USING ( SELECT customer_objid = address_label, addressline1, addressline2, city, region, country, zip code, is_deleted FROM @addresses) AS source_addresses(address_label, addressline1, addressline2, city, region, country, zipcode, is_deleted) ON ( current_addresses.address_label = source_address es.address_label ) WHEN NOT MATCHED THEN INSERT (address_label, addressline1, addressline2, city, region, country, zipcode) VALUES (source_addresses.address_label, source_addresses.addressline1, source_addresses.addressline2, source_addresses.city, source_addresses.region, source_addresses.country, source_addresses.zipcode) WHEN MATCHED AND source_addresses.is_deleted = 1 THEN DELETE WHEN MATCHED THEN UPDATE SET address_label=source_addresses.address_label, addressline1=source_addresses.addressline1, addressline2=source_addresses.addressline2, city=source_addresses.city, region=source_address es.region, country=source_addresses.country,zip code=source_addresses.zipcode |
我们简单的对上述例子进行一下点评。USING部分定义了新数据,在这个例子中是一个表变量。ON部分定义了新数据和现有数据之间的联接。最后,它通过一系列的MATCHED语句来进行相应操作,其中包括WHEN NOT MATCHED的时候进行插入操作,WHEN MATCHED的时候执行更新操作,或WHEN MATCHED且符合一些其它条件的时候进行删除操作。这是一个真正让你省心省力的功能,其语法更干净,且符合我们习惯的思维逻辑。
强大的基于策略管理
好戏总要压轴,我也把SQL Server 2008中最好的新功能之一放到了最后,它就是基于策略的管理。你是否有过这样的想法,希望通过建立一系列的策略,来控制用户可以对你的SQL Server进行什么操作?现在你能实现你的想法了,你可以使用SQL Server 2008的策略管理功能。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
微软发布Linux SQL Server预览版 不只推广新特性
微软最近发布了SQL Server 2016 SP1,它为用户提供了在Linux系统上可用的SQL Server。微软这么做是为了扩大SQL Server的用户群,推广SQL Server的新特性。
-
管理Azure SQL数据库的授权安全性
本文深入介绍了一些支持细粒度控制数据访问的Azure SQL数据库授权方法,它们最多可以深入到控制各个数据库对象和语句类型。
-
微软宣布下一代数据库产品计划 云成为重中之重
微软数据平台副总裁T.K. Ranga Rengarajan本周在西雅图举行的PASS(SQL Server专家协会)峰会2014上介绍了最新的SQL Server数据库进展。
-
IBM与微软展开合作,提供更强大的混合云选择
近日,IBM(NYSE:IBM)正式宣布与微软在云计算领域展开合作,双方将在IBM Cloud和Microsoft Azure上提供对方企业级软件。