OnDelete Element (SSDL)
The OnDelete element in store schema definition language (SSDL) reflects the database behavior when a row that participates in a foreign key constraint is deleted. If the action is set to Cascade, then rows that reference a row that is being deleted will also be deleted. If the action is set to None, then rows that reference a row that is being deleted are not also deleted. An OnDelete element is a child element of an End element.
An OnDelete element can have the following child elements (in the order listed):
The following table describes the attributes that can be applied to the OnDelete element.
|Attribute Name||Is Required||Value|
Cascade or None. (The value Restricted is valid but has the same behavior as None.)
|Any number of annotation attributes (custom XML attributes) may be applied to the OnDelete element. However, custom attributes may not belong to any XML namespace that is reserved for SSDL. The fully-qualified names for any two custom attributes cannot be the same.|
The following example shows an Association element that defines the FK_CustomerOrders foreign key constraint. The OnDelete element indicates that all rows in the Orders table that reference a particular row in the Customers table will be deleted if the row in the Customers table is deleted.
<Association Name="FK_CustomerOrders"> <End Role="Customers" Type="ExampleModel.Store.Customers" Multiplicity="1"> <OnDelete Action="Cascade" /> </End> <End Role="Orders" Type="ExampleModel.Store.Orders" Multiplicity="*" /> <ReferentialConstraint> <Principal Role="Customers"> <PropertyRef Name="CustomerId" /> </Principal> <Dependent Role="Orders"> <PropertyRef Name="CustomerId" /> </Dependent> </ReferentialConstraint> </Association>