CREATEREF (Entity SQL)
Tworzy szkielet odwołań do jednostki w zestawie jednostek.
Składnia
CreateRef(entityset_identifier, row_typed_expression)
Argumenty
entityset_identifier
Identyfikator zestawu jednostek, a nie literał ciągu.
row_typed_expression
Wyrażenie typizowane przez wiersz, które odpowiada właściwościom klucza typu jednostki.
Uwagi
row_typed_expression
musi być strukturalnie równoważna typowi klucza dla jednostki. Oznacza to, że musi mieć taką samą liczbę i typy pól w takiej samej kolejności, jak klucze jednostek.
W poniższym przykładzie wartości Orders i BadOrders są zarówno jednostkami typu Order, jak i id przyjmuje się, że jest to pojedyncza właściwość klucza Order. W przykładzie pokazano, jak możemy utworzyć odwołanie do jednostki w badorders. Należy pamiętać, że odwołanie może zwisać. Oznacza to, że odwołanie może nie identyfikować konkretnej jednostki. W takich przypadkach DEREF
operacja na tym odwołaniu zwraca wartość null.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Przykład
Następujące zapytanie Entity SQL używa operatora CREATEREF do tworzenia sieci szkieletowej odwołań do jednostki w zestawie jednostek. Zapytanie jest oparte na modelu AdventureWorks Sales. Aby skompilować i uruchomić to zapytanie, wykonaj następujące kroki:
Postępuj zgodnie z procedurą w temacie Instrukcje: wykonywanie zapytania zwracającego wyniki StructuralType.
Przekaż następujące zapytanie jako argument do
ExecuteStructuralTypeQuery
metody :
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p