Dela via


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:

  1. Följ proceduren i Så här kör du en fråga som returnerar StructuralType-resultat.

  2. 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

Se även