複数のレコードのナビゲーションから最初のレコードのみを返すことができます。
' [ 'One' ] '
構文の表記規則の表示
可能性のあるすべてのレコードのうち、最初の顧客だけが必要であるため、データプロバイダーの出力として使用する SDT はコレクションではないとします。データプロバイダーが次のように記述されている場合、結果は最後の顧客になりました (データプロバイダーはすべてのテーブルを読み取り、SDT を変更して各顧客で返すため)。
OneCustomer
{
CustomerId
CustomerName
}
データ
CustomerId |
CustomerName |
1 |
顧客 1 |
2 |
顧客 2 |
3 |
顧客 3 |
結果は次のとおりです:
<OneCustomer>
<CustomerId>3</CustomerId>
<CustomerName>Customer three</CustomerName>
</OneCustomer>
生成される Select 文は次のとおりです。1 つのレコードを取得するのにすべてのテーブルを読み込むため、パフォーマンスが良くありません。
SELECT [ CustomerName ] , [ CustomerId ] FROM [ Customer ] WITH (NOLOCK) ORDER BY [ CustomerId ]
この例を改善するために、 [ one ] 節が実装され、次のように記述するとします:
OneCustomer [ one ]
{
CustomerId
CustomerName
}
結果は次のとおりです:
<OneCustomer>
<CustomerId>1</CustomerId>
<CustomerName>Customer one</CustomerName>
</OneCustomer>
この場合に生成される Select 文は次のようになり、パフォーマンスが改善されます。
SELECT TOP 1 [ CustomerName ] , [ CustomerId ] FROM [ Customer ] WITH (NOLOCK) ORDER BY [ CustomerId ]
データ プロバイダー ナビゲーションでは、次のように表示されます: