Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错 SELECT ro.name referenced_object, po.na_Sql Server_Entity Framework - Fatal编程技术网

Sql server t将链接到新表的多个现有表的级联路径。在本例中,我将在Survey和Surveyors表之间创建多对多关系,这将导致在创建SurveyorSurveys表时出错 SELECT ro.name referenced_object, po.na

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

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_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