WEB开发网
开发学院数据库MSSQL Server SQL Server 2008 对 T-SQL 语言的增强 阅读

SQL Server 2008 对 T-SQL 语言的增强

 2007-07-15 09:46:28 来源:WEB开发网   
核心提示: USE AdventureWorks;GOMERGE Production.ProductInventory AS piUSING (SELECT ProductID, SUM(OrderQty) FROM Sales.SalesOrderDetail sodJOIN Sales.Sale
USE AdventureWorks;
GO
MERGE Production.ProductInventory AS pi
USING (SELECT ProductID, SUM(OrderQty) FROM Sales.SalesOrderDetail sod
  JOIN Sales.SalesOrderHeader soh
  ON sod.SalesOrderID = soh.SalesOrderID
  AND soh.OrderDate = GETDATE()
  GROUP BY ProductID) AS src (ProductID, OrderQty)
ON (pi.ProductID = src.ProductID)
WHEN MATCHED AND pi.Quantity - src.OrderQty <> 0
  THEN UPDATE SET pi.Quantity = pi.Quantity - src.OrderQty
WHEN MATCHED AND pi.Quantity - src.OrderQty = 0
  THEN DELETE;

这个示例是一个非常典型的销售定货库存问题。这个示例很简单,表达的意思就是:如果某一个产品产生了销售定单数据,则

将其对应的产品库存除去该销售定单所产生的数量,如果当前库存数量与该销售定单数量相同,则从库存表中删除该产品的库存纪录。

我们看到,利用 MERGE 语句可以将复杂的 SQL 语句简化。它比起 IF、CASE 等更加灵活和强大。

结论

Microsoft SQL Server 2008 对事务性 SQL 语言做了一些增强,提高了查询效率。使得 SQl Server 成为大中型企业数据库的首先产品。SQL Server 2008 将伴随 Visual Studio 2008 一起发布,开发人员提前了解这些信息有助于在 SQL Server 的新版本发布后快速建立基于该版本的企业级应用程序。

有关 SQL Server 2008 的其他增强信息,请参见 MSDN 帮助集合 ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.en/s10de_0evalplan/html/8f625d5a-763c-4440-97b8-4b823a6e2439.htm。

上一页  1 2 3 4 5 

Tags:sql server sql

编辑录入:coldstar [复制链接] [打 印]
赞助商链接