解析SQL Server 2008對T-SQL語言的增強(4)_Mssql數據庫教程
推薦:解讀SQL Server數據庫備份的方法SQL Server數據庫備份有兩種方式,一種是使用BACKUP DATABASE將數據庫文件備份出去,另外一種就是直接拷貝數據庫文件mdf和日志文件ldf的方式。下面將主要討論一下后者的備份與恢復。
7. MERGE 語句
這個新增的 Transaction SQL 語句在一個基于源數據連接結果集的目標表上執行 INSERT、UPDATE 和 DELETE 操作。該語法允許您將一個數據源連接到目標表或視圖上。然后在連接后的結果集上執行多種操作。
MERGE 的語法為:
| 以下為引用的內容:
|
示例:在一條 SQL 語句中使用 WHERE 在一張表上執行 UPDATE 和 DELETE 操作
USEAdventureWorks;
以下為引用的內容:
GO
MERGEProduction.ProductInventoryASpi
USING(SELECTProductID,SUM(OrderQty)FROMSales.SalesOrderDetailsod
JOINSales.SalesOrderHeadersoh
ONsod.SalesOrderID=soh.SalesOrderID
ANDsoh.OrderDate=GETDATE()
GROUPBYProductID)ASsrc(ProductID,OrderQty)
ON(pi.ProductID=src.ProductID)
WHENMATCHEDANDpi.Quantity-src.OrderQty<>0
THENUPDATESETpi.Quantity=pi.Quantity-src.OrderQty
WHENMATCHEDANDpi.Quantity-src.OrderQty=0
THENDELETE;
這個示例是一個非常典型的銷售定貨庫存問題。這個示例很簡單,表達的意思就是:如果某一個產品產生了銷售定單數據,則將其對應的產品庫存除去該銷售定單所產生的數量,如果當前庫存數量與該銷售定單數量相同,則從庫存表中刪除該產品的庫存紀錄。
我們看到,利用 MERGE 語句可以將復雜的 SQL 語句簡化。它比起 IF、CASE 等更加靈活和強大。
結論
Microsoft SQL Server 2008 對事務性 SQL 語言做了一些增強,提高了查詢效率。使得 SQl Server 成為大中型企業數據庫的首先產品。SQL Server 2008 將伴隨 Visual Studio 2008 一起發布,開發人員提前了解這些信息有助于在 SQL Server 的新版本發布后快速建立基于該版本的企業級應用程序。
分享:解析SQL 2008的Change Data Capture功能在常見的企業數據平臺管理中有一項任務是一直困擾SQL Server DBA們的,這就是對數據更新的監控。很多數據應用都需要捕獲對業務數據表的更新。筆者見過幾種解決方案: 1、在數
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
。