OnDelete 項目 (SSDL)
當參與外部索引鍵條件約束之資料列被刪除時,存放結構定義語言 (SSDL) 中的 OnDelete 項目會反映資料庫行為。 如果動作已設定為 Cascade,則要刪除之參照資料列之資料列也會被刪除。 如果動作已設定為 None,則要刪除之參照資料列之資料列也不會被刪除。 OnDelete 項目是 End 項目的子項目。
OnDelete 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個)
Annotation 項目 (零或多個)
適用屬性
下表描述可套用至 OnDelete 項目的屬性。
屬性名稱 | 必要 | 值 |
---|---|---|
Action |
是 |
Cascade 或 None (值 Restricted 有效,但是與 None 具有相同的行為)。 |
注意: |
---|
可以將任何數量的附註屬性 (自訂 XML 屬性) 套用至 OnDelete 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 SSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示 Association 項目定義 FK_CustomerOrders 外部索引鍵條件約束。 如果 Customers 資料表中的資料列已刪除,OnDelete 項目表示將要刪除 Orders 資料表中參考 Customers 資料表中之特定資料列的所有資料列。
<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>