两个表 City 和ManYouRecord, 这两个表的主键字段都是OID , int类型, 自增长.
ManyYouRecord中又两个字段ManYouRecord_CityOut_City_ConceptAssociation, ManYouRecord_CityIN_City_ConceptAssociation都外键参考City表,
这两个外键的定义语句为:
ALTER TABLE [dbo].[ManYouRecord] WITH CHECK ADD CONSTRAINT [ManYouRecord_CityOut_City_ConceptAssociation] FOREIGN KEY([ManYouRecord_CityOut_City_ConceptAssociation])
REFERENCES [dbo].[City] ([OID]) ON DELETE NO ACTION
ALTER TABLE [dbo].[ManYouRecord] WITH CHECK ADD CONSTRAINT [ManYouRecord_CityIN_City_ConceptAssociation] FOREIGN KEY([ManYouRecord_CityIN_City_ConceptAssociation])
REFERENCES [dbo].[City] ([OID]) ON DELETE NO ACTION
但是如果将两个外键的ON DELETE 属性都改为SET NULL, 就会出错,
SQL Server 的异常信息如下:
消息 1785,级别 16,状态 0,第 1 行
将 FOREIGN KEY 约束 'ManYouRecord_CityOut_City_ConceptAssociation' 引入表 'ManYouRecord' 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅前面的错误消息。
郁闷一点点.. 还不知道为什么, 没办法只能用NO ACTION 顶着.