SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Customers
ADD CONSTRAINT
PK_Customers PRIMARY KEY CLUSTERED
(
CustomerID
)
WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
ALTER TABLE dbo.Customers SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
BEGIN TRANSACTION
GO
ALTER TABLE dbo.Orders ADD CONSTRAINT
PK_Orders PRIMARY KEY CLUSTERED
(
OrderID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
ALTER TABLE dbo.Orders ADD CONSTRAINT
FK_Orders_Customers FOREIGN KEY
(
CustomerID
) REFERENCES dbo.Customers
(
CustomerID
) ON UPDATE CASCADE
ON DELETE NO ACTION
GO
ALTER TABLE dbo.Orders SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
更新規則
讓您使用下列選項更新規則:
NO ACTION、CASCADE、SET NULL、SET Default
如果您指定 NO ACTION,SQL Server Compact 就會傳回錯誤,也會回復對於父資料表中受參考資料列的更新動作。
如果您指定 CASCADE 選項,而且在父資料表中更新對應的受參考資料列,就會在參考資料表中更新此資料列。
例如,資料庫中可能有 A 和 B 兩個資料表。資料表 A 具有資料表 B 的參考關聯性:A.ItemID 外部索引鍵會參考 B.ItemID 主索引鍵。
如果在資料表 B 中的資料列執行 UPDATE 陳述式,並且針對 A.ItemID 指定 ON UPDATE CASCADE 動作,SQL Server Compact 會檢查資料表 A 中是否有一個或多個相依資料列。如果有,則資料表 A 中的相依資料列會更新,而且所參考之資料表 B 中的資料列也會更新。
NO ACTION、CASCADE、SET NULL、SET Default
如果您指定 NO ACTION,SQL Server Compact 就會傳回錯誤,也會回復對於父資料表中受參考資料列的更新動作。
如果您指定 CASCADE 選項,而且在父資料表中更新對應的受參考資料列,就會在參考資料表中更新此資料列。
例如,資料庫中可能有 A 和 B 兩個資料表。資料表 A 具有資料表 B 的參考關聯性:A.ItemID 外部索引鍵會參考 B.ItemID 主索引鍵。
如果在資料表 B 中的資料列執行 UPDATE 陳述式,並且針對 A.ItemID 指定 ON UPDATE CASCADE 動作,SQL Server Compact 會檢查資料表 A 中是否有一個或多個相依資料列。如果有,則資料表 A 中的相依資料列會更新,而且所參考之資料表 B 中的資料列也會更新。
刪除規則
讓您使用下列選項刪除規則:
NO ACTION、CASCADE、SET NULL、SET Default
如果您指定 NO ACTION,SQL Server Compact 就會傳回錯誤,也會回復對於父資料表中受參考資料列的刪除動作。
如果您指定 CASCADE 選項,而且在父資料表中刪除對應的受參考資料列,就會在參考資料表中刪除此資料列。
例如,資料庫中可能有 A 和 B 兩個資料表。資料表 A 具有資料表 B 的參考關聯性:A.ItemID 外部索引鍵會參考 B.ItemID 主索引鍵。
如果在資料表 B 中的資料列上執行 UPDATE 陳述式,並且針對 A.ItemID 指定 ON UPDATE CASCADE 動作,SQL Server Compact 會檢查資料表 A 中是否有一個或多個相依資料列。如果有,則資料表 A 中的相依資料列會被刪除,而所參考之資料表 B 中的資料列也會被刪除。
NO ACTION、CASCADE、SET NULL、SET Default
如果您指定 NO ACTION,SQL Server Compact 就會傳回錯誤,也會回復對於父資料表中受參考資料列的刪除動作。
如果您指定 CASCADE 選項,而且在父資料表中刪除對應的受參考資料列,就會在參考資料表中刪除此資料列。
例如,資料庫中可能有 A 和 B 兩個資料表。資料表 A 具有資料表 B 的參考關聯性:A.ItemID 外部索引鍵會參考 B.ItemID 主索引鍵。
如果在資料表 B 中的資料列上執行 UPDATE 陳述式,並且針對 A.ItemID 指定 ON UPDATE CASCADE 動作,SQL Server Compact 會檢查資料表 A 中是否有一個或多個相依資料列。如果有,則資料表 A 中的相依資料列會被刪除,而所參考之資料表 B 中的資料列也會被刪除。
沒有留言:
張貼留言