mssql sqlserver 外键约束功能(数据一致性 级联删除(ON DELETE CASCADE)和级联更新(ON UPDATE CASCADE))


摘要:
下文讲述sqlserver中外键的举例应用–级联更新和删除操作
级联操作描述:
如果设置了级联操作的相关选项,当主表关联键发生变化时,自动操作对应的外键的值。



sql server 外键约束举例说明1:

  create table [maomao365.com_Main]
(keyId int primary key,sortName nvarchar(30))
go
create table [maomao365.com_Detail]
( sourceKeyId int,
sortDetailName nvarchar(300),
foreign key (sourceKeyId)
 references [maomao365.com_Main](keyId) on delete cascade  ON UPDATE CASCADE ---设置外键 级联删除 级联更新 
) 
go

/*
上文设置了外键的 级联更新和级联删除
由于加入了  on delete cascade 级联删除
当我们删除[maomao365.com_Main]表中的记录时,相对应的明细表中的会自动清除
----------------------------------
由于加入了  ON UPDATE CASCADE 级联更新
当我们更新了[maomao365.com_Main]表中的记录时,相对应的明细表中的会自动更新

----表结构已存在时添加
   ALTER TABLE [dbo].[maomao365.com_Detail]  WITH CHECK Add CONSTRAINT [FK_maomao365.com_Main_sourceKeyId] 
   foreign key (sourceKeyId)
 references [maomao365.com_Main](keyId) on delete cascade  ON UPDATE CASCADE
GO
 
----删除约束
ALTER TABLE [dbo].[maomao365.com_Detail] 
drop constraint [FK_maomao365.com_Main_sourceKeyId] 
Go
*/

go
truncate table [maomao365.com_Detail]
drop table [maomao365.com_Detail]

go
truncate table [maomao365.com_Main]
drop table [maomao365.com_Main]