SQL Server,FK:检查(多)方面的(1)方NoCheck

时间:2015-01-06 06:22:27

标签: sql-server foreign-keys check-constraints

假设我有一个带有一些FK的ActiveCustomers表(例如CountryID), 我也有一个具有相同FK的NonActiveCustomers。 当我向ActiveCustomers插入一个新行时 - 系统必须检查" 1" side(从1:N)来验证CountryID(或其他)是否存在。 当我从ActiveCustomers移动一行到NonActiveCustomers时 - 我不需要系统再次验证它,因为当该行最初插入到ActiveCustomers中时已经完成了。 在这种情况下,我可以在ActiveCustomers上创建一个Check FK约束, 和NonActiveCustomers的NoCheck FK约束; 但问题是当我删除" 1"边桌(国家),我希望系统检查" N"允许操作的表:我不想在那里有孤立的行。 我怎样才能做到这一点? Nocheck禁用NonActiveCustomers插入中的所有验证以及删除和删除。更新(在国家/地区),即使我明确指定On Delete No Action On Update No Action。 当然,我可以在国家/地区创建触发器以验证删除或更新是否正确,但有没有办法使用约束机制来做到这一点?

0 个答案:

没有答案