Sql server t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错 SELECT ro.name referenced_object, po.na
t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错Sql server t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错 SELECT ro.name referenced_object, po.na,sql-server,entity-framework,Sql Server,Entity Framework,t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错 SELECT ro.name referenced_object, po.name parent_object, fk.name foreign_key FROM sys.foreign_keys fk INNER JOIN sys.all_objects po ON fk.parent_obje
SELECT
ro.name referenced_object,
po.name parent_object,
fk.name foreign_key
FROM sys.foreign_keys fk
INNER JOIN sys.all_objects po
ON fk.parent_object_id = po.object_id
INNER JOIN sys.all_objects ro
ON fk.referenced_object_id = ro.object_id
WHERE delete_referential_action_desc = 'CASCADE'
and (po.name = 'Surveys' or po.name = 'Surveyors'')
ORDER BY ro.name
Root Parent Child foreign_key Level
-----------------------------------
A A B1 FK_B1_A 1
A A B2 FK_B2_A 1
A B1 C FK_C_B1 2
WITH Cascades
AS (SELECT
fk.parent_object_id,
fk.referenced_object_id,
fk.name foreign_keys,
CAST(ro.name + ' -> ' + po.name AS nvarchar(256)) path,
1 AS level
FROM sys.foreign_keys fk
INNER JOIN sys.all_objects po
ON fk.parent_object_id = po.object_id
INNER JOIN sys.all_objects ro
ON fk.referenced_object_id = ro.object_id
WHERE delete_referential_action_desc = 'CASCADE'
-- specifying leaf instead of root:
AND po.name IN ('Surveys', 'Surveyors', 'surveyorsurveys')
UNION ALL SELECT
fk.parent_object_id,
fk.referenced_object_id,
CAST(fk.name + ' -> ' + Cascades.foreign_keys as nvarchar(128)),
CAST(ro.name + ' -> ' + cascades.path AS nvarchar(256)),
cascades.level + 1
FROM sys.foreign_keys fk
INNER JOIN sys.all_objects po
ON fk.parent_object_id = po.object_id
INNER JOIN sys.all_objects ro
ON fk.referenced_object_id = ro.object_id
INNER JOIN cascades
ON cascades.referenced_object_id = fk.parent_object_id
WHERE delete_referential_action_desc = 'CASCADE')
SELECT
path,
foreign_keys,
level
FROM Cascades
ORDER BY path