SQL Server 2005改進后的幾個實用新特性_Mssql數據庫教程
推薦:SQL語句中的一些特殊參數如何用變量來代替可以采用exec方法 以下為引用的內容: declare @tempStr varchar(350) select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' conver
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
特別之處:通過表達式還可以支持遞歸。
分享:微軟數據平臺開發與SQL Server 2008一、前言: 目前,隨著數據庫系統和編程語言的不斷發展,它們各自都有了自己專注的特定的功能而逐漸分離開。這導致產生了在現今的應用程序中的數據存儲和業務邏輯之間的阻抗失諧。SQL Server
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-SQL Server 2005改進后的幾個實用新特性
。