加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

SQL Server 2005新成果-TSQL

发布时间:2018-08-25 02:01:50 所属栏目:电商 来源:站长网
导读:SQL Server 2005相对付SQL Server 2000改造很大,有些还长短常适用的。 举几个例子来简朴声名 这些例子我引用了Northwind库。 1. TOP 表达式 SQL Server 2000的TOP是个牢靠值,是不是认为不爽,此刻改造了。 --前n名的订单 declare @n int set @n = 10 sel

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
通过表达式可免去你已往建设姑且表的贫困。
www.knowsky.com


--例子:团结通用表达式举办分页
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获得wsdl

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读