OnDelete 要素 (SSDL)
ストア スキーマ定義言語 (SSDL) 内の OnDelete 要素は、外部キー制約に関与している行が削除されるときのデータベースの動作を反映します。アクションが Cascade に設定されている場合は、削除される行を参照している行も削除されます。アクションが None に設定されている場合、削除される行を参照している行は削除されません。OnDelete 要素は、End 要素の子要素です。
OnDelete 要素には、ここに示した順序で次の子要素を含めることができます。
Documentation (0 個または 1 個)
Annotation 要素 (0 個以上)
適用可能な属性
OnDelete 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Action |
はい |
Cascade または None。(Restricted の値は有効ですが、None と同じ動作になります)。 |
注意
OnDelete 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は SSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例では、FK_CustomerOrders 外部キー制約を定義する Association 要素を示します。OnDelete 要素は、Customers テーブル内の行が削除される場合、Customers テーブル内の特定の行を参照している Orders テーブル内のすべての行も削除されることを示します。
<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>
<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>
<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>