国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server 2005新功能

2024-08-31 00:47:42
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

 舉幾個例子來簡單說明 這些例子我引用了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得到wsdl

在http通訊時,例子代碼使用的是windows集成驗證 。
給個客戶端例子。
private void button1_click(object sender, eventargs e)
{
    localhost.orders_endpoint endp 
= new localhost.orders_endpoint();
    endp.credentials 
= system.net.credentialcache.defaultcredentials;
    
object[] r = endp.custordersorders("vinet");

    dataset ds 
= new dataset();
    
foreach(object o in r)
        
if (o is dataset) ds = (dataset)o;

    datagridview1.datasource 
= ds.tables[0];            
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安阳市| 金阳县| 司法| 社会| 秭归县| 桐庐县| 化德县| 青河县| 阿拉善左旗| 丹寨县| 永城市| 阿图什市| 乌拉特中旗| 玉林市| 乃东县| 梅州市| 九龙坡区| 板桥市| 乐山市| 思南县| 永宁县| 资阳市| 卢湾区| 长沙县| 石屏县| 绥中县| 克山县| 商都县| 即墨市| 凌海市| 保德县| 双城市| 齐齐哈尔市| 濮阳市| 漳浦县| 丰台区| 台湾省| 时尚| 塔城市| 衡南县| 桂阳县|