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 微軟官...