Самое простое решение - убедиться, что у вас включено каскадное удаление для связей между таблицами.
Create Table State
(
Code char(2) not null Primary Key
, ...
)
Create Table Region
(
Code varchar(10) not null
, StateCode char(2) not null
, Constraint FK_Region_State
Foreign Key ( StateCode )
References State( Code )
On Delete Cascade
)
Create Table City
(
Name varchar(40) not null
, StateCode char(2) not null
, RegionCode varchar(10) not null
, Constraint FK_City_State
Foreign Key ( StateCode )
References State( Code )
On Delete Cascade
, Constraint FK_City_Region
Foreign Key ( StateCode )
References State( Code )
On Delete Cascade
)
Если по какой-то причине вы не можете включить Каскадное удаление, вам придется применять это правило с помощью триггера в таблице состояний.(Кстати, "государство" по имени Франция?)