品味SQL Server 2005的幾個新功能

2021-09-05 18:16:42 字數 1972 閱讀 4398

sql server 2005相對於sql server 2000改進很大,有些還是非常實用的。舉幾個例子來簡單說明 這些例子我引用了northwind庫。

1. top 表示式

sql server 2000的top是個固定值,是不是覺得不爽,現在改進了。

--前n名的訂單

declare @n int

set @n = 10

select top(@n) * from orders

2. 分頁

不知各位過去用sql server 2000是怎麼分頁的,大多都用到了臨時表。sql server 2005一句話就支援分頁,效能據說也非常不錯。

--按freight從小到大排序,求20到30行的結果

select * from(select orderid, freight, row_number() over(order by freight) as row from orders) a

where row between 20 and 30

3. 排名

select * from(select orderid, freight, rank() over(order by freight) as rank from orders) a

where rank between 20 and 30

4. try ... catch

sql server 2000沒有異常,t-sql必須逐行檢查錯誤**,對於習慣了try catch程式設計師,2005是不是更加親切:

set xact_abort on -- 開啟 try功能

begin try

begin tran

insert into orders(customerid) values(-1)

commit tran

print 'commited'

end try

begin catch

rollback

print 'rolled back'

end catch

5. 通用表示式cte

通過表示式可免除你過去建立臨時表的麻煩。

--例子:結合通用表示式進行分頁

with orderfreight as(

select orderid, freight, row_number() over(order by freight) as row from orders

) select orderid, freight from orderfreight where row between 10 and 20

特別,通過表示式還支援遞迴。

6. 直接發布web service

想要把store procedure變成web service就用這個吧,.net, iis都不需要,通過windows 2003的http protocol stack直接發布webservice,用這個功能需要windows 2003 sp1

web service就發布好了,敲入http://localhost/sql/orders?wsdl得到wsdl

品味SQL Server 2005的幾個新功能

sql server 2005相對於sql server 2000改進很大,有些還是非常實用的。舉幾個例子來簡單說明 這些例子我引用了northwind庫。1.top 表示式 sql server 2000的top是個固定值,是不是覺得不爽,現在改進了。前n名的訂單 declare n int se...

SQL Server2005複製實現

一 準備工作 1 在發布伺服器上建立乙個共享目錄,作為發布快照檔案的存放目錄。例如 在d 盤根目錄下建資料夾名為pub 2 設定sql 發布伺服器和訂閱伺服器均設定 步驟 開啟服務 控制面板 管理工具 服務 右擊sqlserver agent 屬性 登入 選擇 此帳戶 輸入或選擇第一步中建立的win...

SQL Server 2005完全解除安裝

sql server 2005的解除安裝是乙個非常頭疼的問題。我曾經嘗試過直接使用 新增或刪除程式 工具解除安裝 清除安裝目錄 刪除登錄檔內容等等各種方式綜合解除安裝,勉強成功。現在終於找到了乙個事半功倍的方法,多次嘗試,未有失敗,具體如下 第一種是微軟官方提供的工具 msicuu2.exe 微軟官...