CREATEREF (entitets-SQL)
Fabricerar referenser till en entitet i en entitetsuppsättning.
Syntax
CreateRef(entityset_identifier, row_typed_expression)
Argument
entityset_identifier
Entitetsuppsättningsidentifieraren, inte en strängliteral.
row_typed_expression
Ett radtypat uttryck som motsvarar nyckelegenskaperna för entitetstypen.
Kommentarer
row_typed_expression
måste vara strukturellt likvärdig med nyckeltypen för entiteten. Den måste alltså ha samma antal och typer av fält i samma ordning som entitetsnycklarna.
I exemplet nedan är Order och BadOrders båda entitetsuppsättningar av typen Order och ID antas vara den enda nyckelegenskapen för Order. Exemplet illustrerar hur vi kan skapa en referens till en entitet i BadOrders. Observera att referensen kan vara dinglande. Referensen kanske inte identifierar en specifik entitet. I dessa fall returnerar en DEREF
åtgärd på referensen en null.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Exempel
Följande SQL-entitetsfråga använder CREATEREF-operatorn för att fabricera referenser till en entitet i en entitetsuppsättning. Frågan baseras på AdventureWorks försäljningsmodell. Följ dessa steg för att kompilera och köra den här frågan:
Följ proceduren i Så här kör du en fråga som returnerar StructuralType-resultat.
Skicka följande fråga som ett argument till
ExecuteStructuralTypeQuery
metoden:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p