Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Definicja typu jest używana w instrukcji deklaracji funkcji wbudowanej Entity SQL.
Uwagi
Instrukcja deklaracji funkcji wbudowanej składa się ze słowa kluczowego FUNCTION , po którym następuje identyfikator reprezentujący nazwę funkcji (na przykład "MyAvg"), po którym następuje lista definicji parametrów w nawiasie (na przykład "dues Collection(Decimal)").
Lista definicji parametrów składa się z zera lub większej liczby definicji parametrów. Każda definicja parametru składa się z identyfikatora (nazwy parametru funkcji, na przykład "dues"), po której następuje definicja typu (na przykład "Collection(Decimal)").
Definicje typów mogą być następujące:
Typ identyfikatora (na przykład "Int32" lub "AdventureWorks.Order").
Słowo kluczowe
COLLECTION
, po którym następuje inna definicja typu w nawiasie (na przykład "Collection(AdventureWorks.Order)").Wiersz słowa kluczowego, po którym następuje lista definicji właściwości w nawiasie (na przykład "Row(x AdventureWorks.Order)"). Definicje właściwości mają format, taki jak "
identifier type_definition
,identifier type_definition
, ...".Słowo kluczowe REF, po którym następuje typ identyfikatora w nawiasie (na przykład "Ref(AdventureWorks.Order)"). Operator definicji typu REF wymaga typu jednostki jako argumentu. Nie można określić typu pierwotnego jako argumentu.
Można również zagnieżdżać definicje typów (na przykład "Collection(Row(x Ref(AdventureWorks.Order)))").
Opcje definicji typu to:
IdentifierName supported_type
LubIdentifierName
COLLECTION(type_definition
) lubIdentifierName
ROW(property_definition
) lubIdentifierName
REF(supported_entity_type
)
Opcja definicji właściwości to IdentifierName type_definition
.
Obsługiwane typy to dowolne typy w bieżącej przestrzeni nazw. Obejmują one zarówno typy pierwotne, jak i typy jednostek.
Obsługiwane typy jednostek odwołują się tylko do typów jednostek w bieżącej przestrzeni nazw. Nie obejmują typów pierwotnych.
Przykłady
Poniżej przedstawiono przykład prostej definicji typu.
USING Microsoft.Samples.Entity
Function MyRound(p1 EDM.Decimal) AS (
Round(p1)
)
MyRound(CAST(1.7 as EDM.Decimal))
Poniżej przedstawiono przykład definicji typu KOLEKCJA.
USING Microsoft.Samples.Entity
Function MyRound(p1 Collection(EDM.Decimal)) AS (
Select Round(p1) from p1
)
MyRound({CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)})
Poniżej przedstawiono przykład definicji typu wiersza.
USING Microsoft.Samples.Entity
Function MyRound(p1 Row(x EDM.Decimal)) AS (
Round(p1.x)
)
select MyRound(row(a as x)) from {CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)} as a
Poniżej przedstawiono przykład definicji typu REF.
USING Microsoft.Samples.Entity
Function UnReference(p1 Ref(AdventureWorks.Order)) AS (
Deref(p1)
)
select Ref(x) from AdventureWorksEntities.SalesOrderHeaders as x