日期:2014-05-16 浏览次数:20427 次
原文:
http://www.mssqltips.com/sqlservertip/2743/using-delete-cascade-option-for-foreign-keys/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012731
参照完整性在设计数据库时需要重视,在我作为DBA的生涯中,看到很多设计走了极端的路子。
在进入DELETE CASCADE选项的详细说明前,先来看看另外一个选项,可以在具有外键的表中设置UDPATE CASCADE选项。在我的工作生涯中,我从来没有遇到过必须通过外键来更新一列或多列。
在本例中,创建两个表,并用外键关联起来。主表有99999行记录,子表对于每条父记录,有19条记录。下面是创建语句:
-- Table creation logic --parent table CREATE TABLE [dbo].[Order]( [OrderID] [bigint] NOT NULL, [OrderData] [varchar](10) NOT NULL, CONSTRAINT [PK_Order_1] PRIMARY KEY CLUSTERED ([OrderID] ASC) ) GO -- child table CREATE TABLE [dbo].[OrderDetail]( [OrderDetailID] [bigint] NOT NULL, [OrderID] [bigint] NULL, [OrderData] [varchar](10) NULL, CONSTRAINT [PK_OrderDetail] PRIMARY KEY CLUSTERED ([OrderDetailID] ASC) ) GO -- foreign key constraint ALTER TABLE [dbo].[OrderDetail] WITH CHECK ADD CONSTRAINT
[FK_OrderDetail_Order] FOREIGN
KEY
|