日期:2011-05-02 15:20:00 来源:本站整理
品味SQL Server 2005的几个新功效[MSSQL防范]
本文“品味SQL Server 2005的几个新功效[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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
--DataSet CustOrdersOrders(string customerID)
CREATE ENDPOINT Orders_Endpoint
state=started
as http(
path='/sql/orders',
AUTHENTICATION=(INTEGRATED),
ports=(clear)
)
for soap(
WebMethod 'CustOrdersOrders'(
name='Northwind.dbo.CustOrdersOrders'
),
wsdl=default,
database='Northwind',
namespace='http://mysite.org/'
)
Web Service就公布好了,敲入http://localhost/sql/orders?wsdl得到ws
以上是“品味SQL Server 2005的几个新功效[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论