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 は 1 文でのページングをサポートしており、パフォーマンスが非常に優れていると言われています。
--Freight で小さいものから大きいものまで並べ替え、行 20 から 30 の結果を見つけます
select * from(
select OrderId, Freight, ROW_NUMBER() OVER(order by Freight) as row from Orders
) a
where row 20 から 30 の間
3. select * from(
select OrderId, Freight, RANK() OVER(order by Freight) as Rank from Orders
) a
where ランクは 20 から 30 までです
4. try ... catch
SQL Server 2000 には例外がありません。T-SQL はエラー コードを 1 行ずつチェックする必要があります。catch を試すことに慣れているプログラマにとっては、2005 の方が使いやすいです。
commit tran
print 'commited'
END TRY
BEGIN CATCH
rollback
print 'rolled back'
END CATCH
5. Universal Expression 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 ここで10 から 20 までの行
特に、式を介した再帰もサポートされています。
6. Web サービスを直接公開する
ストア プロシージャを Web サービスに変換する場合は、これを使用します。Windows 2003 の HTTP プロトコル スタックを介して Web サービスを直接公開します。この機能を使用するには、Windows が必要です。 2003 sp1
- -DataSet CustOrdersOrders(string customerID)
CREATE ENDPOINT Orders_Endpoint
state=started
as http(
path='/sql/orders',
AUTHENTICATION=(統合),
http://www.bkjia.com/PHPjc/631100.html