熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

SQL 2008如何引誘我們升級?[2]

2013-11-13 12:34:01  來源: SQL語言 

  學會使用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 的策略管理功能

[]  []  []  


From:http://tw.wingwit.com/Article/program/SQL/201311/16152.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.