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