Sql Server 2005開發新特性例項
一、更強的程式設計能力-----CLR整合
資料庫程式設計人員現在可以充分利用.Net Framework類庫和現代程式語言來開發資料庫應用.
通過整合的CLR,你可以用VB.Net和C#來編寫儲存過程、函式和觸發器.
許多之前我們用T-SQL難以實現的任務現在可以更容易的用託管程式碼實現。
系統還新增了兩個資料庫物件型別:聚合和使用者自定義型別。
資料庫開發被整合到Visual Studio 2005開發環境中.
CLR整合提供了將邏輯從其他層移動到資料庫層的選擇。
CLR整合執行的SQL Server功能的步驟:
1. 開發人員將託管程式編寫為一組類的定義。將你要在Sql Server內用作儲存過程、函式或觸發器等的程式碼編寫為類的Static方法(如果你要建立使用者定義的型別和聚合,可把程式碼編寫為一個類class)。編譯改程式並建立一個程式集。
2. 將此程式集上載到SQL Server資料庫,使用Create Assembly資料定義(DDL)轉載程式集,這樣便在資料庫中註冊了它。
3. 建立Transact-SQL物件,例如,函式、過程和觸發器、型別和聚合,並將它繫結到已經上載的程式集中的入口點(對函式、過程和觸發器來說是方法,對型別和聚合來說是類)。
4. 利用VS.Net 2005提供的部署的功能,可以完成在前面提到的Create Assembly或建立T-SQL物件,VS.net2005這個產品吧通用性操作,做成了整合。
二、XML技術-----Native XML support(open XML和aoto XML)
三、Service Broker
四、Web Services
建立一個Function
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->create function counttable() returns int
as
begin
return
(
select count(*) as 'total' from XmlTable
)
End
建立一個EndPoint物件
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->create endpoint CharlesWebService
state=started
as HTTP
(
SITE='localhost',
PATH='/CharlesWebService',
--Authentication=(integrated),
--PORTS=8685
authentication=(integrated),
ports=(Clear),
Clear_Port=8080
)
for SOAP
(
WebMethod 'GetCount'
(
name='CharlesTest.dbo.counttable',
schema=standard
),
wsdl=default,
batches=enabled,
database='CharlesTest'
)
這樣http://localhost:8080/CharlesWebService?wsdl 就是在本地的8080埠上註冊了一個Web Service,而且並不需要IIS的支援,可以通過Web 引用新增到專案中使用。
如果要刪除這個Web Service 則用
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->drop endpoint CharlesWebService
五、T-SQL的增強
1.New Relational Operators
PIVOT例子
(PIVOT和ON PIVOT主要用於分析二維表格,可以把行轉換成列,列轉換成行)
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->select * from CarSales
PIVOT(SUM(Sales) FOR Year IN([1990],[1991])) t
2.Common Table Expressions
建立一個表:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Employee]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Employee](
[empid] [int] NOT NULL,
[empname] [nvarchar](50) NULL,
[mgrid] [int] NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[empid] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
插入的資料為:
1 | newegg | NULL |
2 | CBD | 1 |
3 | A | 2 |
4 | B | 2 |
5 | C | 2 |
6 | D | 2 |
7 | E | 2 |
8 | F | 2 |
9 | BB | 4 |
10 | FF | 8 |
現在我們需要查詢CBD下所有的人員資訊。(包括CBD),那麼我們可以用如下的語句來實現:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->遞迴呼叫
with EmpCTE(empid,empname,mgrid)
AS
(
(select empid,empname,mgrid
from Employee
where empid=2)
union all
(select E.empid,E.empname,E.mgrid
from Employee as E
join EmpCTE as M
on E.mgrid=M.empid )
)
select * from EmpCTE
最後的效果為:
2 | CBD | 1 |
3 | A | 2 |
4 | B | 2 |
5 | C | 2 |
6 | D | 2 |
7 | E | 2 |
8 | F | 2 |
9 | BB | 4 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-545037/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 2005的複製儲存過程選項BYSQLServer儲存過程
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- sql server 2005資料庫快照SQLServer資料庫
- 已安裝 SQL Server 2005 Express 工具。若要繼續,請刪除 SQL Server 2005 Express 工具SQLServerExpress
- SQL Server 2005效能調整一(zt)SQLServer
- SQL Server 2005效能調整二(zt)SQLServer
- SQL?Server新特性SequenceNumber用法介紹YTZBSQLServer
- 使用SSMS連線和查詢 SQL Server 例項SSMSQLServer
- sql server 2005 資料修改的內部原理SQLServer
- Sql Server資料庫開窗函式Over()的使用例項詳解SQLServer資料庫函式
- SQL Server 2005詳細安裝過程及配置SQLServer
- 如何建立和還原SQL Server 2005資料庫?SQLServer資料庫
- SQL Server2005使用CTE實現遞迴QCSQLServer遞迴
- [AlwaysOn] 建立SQL Server高可用性組T-SQL語法:例項SQLServer
- JDK 7 新特性小結(包含例項程式碼)JDK
- SQL觸發器例項講解SQL觸發器
- 【故障公告】阿里雲 RDS SQL Server 資料庫例項 CPU 100% 引發全站故障阿里SQLServer資料庫
- SQL Server 2022 AlwaysOn新特性之包含可用性組介紹SQLServer
- 7月新特性 | 軟體開發生產線CodeArts釋出多項新特性等你體驗!
- Q&A:在SQL Server 2005中編寫儲存過程RVSQLServer儲存過程
- python開發例項-python開發案例Python
- C#開發例項大全C#
- ES10(ES2019)新特性介紹和程式碼例項
- 玩轉iOS開發:iOS 11 新特性《Layout的新特性》iOS
- SQL Server 2008資料複製新特性及其帶來的價值(下)XDSQLServer
- SQL Server誤區 一個例項多個映象和日誌傳送延遲SQLServer
- SQL Server 表分割槽注意事項HXSQLServer
- 23C新特性SQL防火牆 (SQL Firewall)SQL防火牆
- [翻譯]SQL Server 2005 Analysis Services效能指南 Part 1 - 理解查詢構架SQLServer
- SQL Server 2000/2005/2008刪除或壓縮資料庫日誌的方法SQLServer資料庫
- SQL Server隱藏例項會導致Alwasy on手動故障轉移時報error 26SQLServerError
- Chrome 72 開發者工具新特性Chrome
- Chrome 77 開發者工具新特性Chrome
- 如何將SQL Server 2000備份的資料庫檔案還原(升級)為SQL Server 2005或更高版本的資料庫?SQLServer資料庫
- 一個pyspark 開發練習例項Spark
- android原生開發recyclerview基礎例項AndroidView
- 原生javascript開發計算器例項JavaScript
- 因為修改windows管理員密碼導致sql server 2005不能啟動處理Windows密碼SQLServer
- Microsoft SQL Server 2005中查詢優化器使用的統計資訊二(zt)ROSSQLServer優化