数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL 2008如何引诱我们升级?[2]


发布日期:2022年02月28日
 
SQL 2008如何引诱我们升级?[2]

学会使用Merge语句

在SQL Server 有一个新的MERGE语句让我有一点点激动SQL Server开发者在编写修改表的存储过程时会非常喜欢这个新的TSQL语法使用IFTHEN来决定一个数据行是否需要被插入更新或删除的时代已经过去了MERGE让我们可以一次搞定所有的逻辑和修改而且你可以一次就能搞定整个数据集的对比不用再逐行进行对比以下是使用MERGE语句的一个例子

MERGE tbl_address AS current_addresses

USING (

SELECT customer_objid = address_label

addressline addressline city region country zip

code is_deleted

FROM @addresses)

AS

source_addresses(address_label addressline

addressline city region country zipcode

is_deleted)

ON

(

current_addressesaddress_label = source_address

esaddress_label

)

WHEN NOT MATCHED THEN

INSERT (address_label addressline addressline

city region country zipcode)

VALUES (source_addressesaddress_label

source_addressesaddressline

source_addressesaddressline

source_addressescity source_addressesregion

source_addressescountry source_addresseszipcode)

WHEN MATCHED AND source_addressesis_deleted

=

THEN DELETE

WHEN MATCHED THEN

UPDATE

SET address_label=source_addressesaddress_label

addressline=source_addressesaddressline

addressline=source_addressesaddressline

city=source_addressescity region=source_address

esregion country=source_addressescountryzip

code=source_addresseszipcode

我们简单的对上述例子进行一下点评USING部分定义了新数据在这个例子中是一个表变量ON部分定义了新数据和现有数据之间的联接最后它通过一系列的MATCHED语句来进行相应操作其中包括WHEN NOT MATCHED的时候进行插入操作WHEN MATCHED的时候执行更新操作或WHEN MATCHED且符合一些其它条件的时候进行删除操作这是一个真正让你省心省力的功能其语法更干净且符合我们习惯的思维逻辑

强大的基于策略管理

好戏总要压轴我也把SQL Server 中最好的新功能之一放到了最后它就是基于策略的管理你是否有过这样的想法希望通过建立一系列的策略来控制用户可以对你的SQL Server进行什么操作?现在你能实现你的想法了你可以使用SQL Server 的策略管理功能

[] [] []

               

上一篇:SQL 2008如何引诱我们升级?[3]

下一篇:SQL 2008如何引诱我们升级?[1]