【发布时间】:2017-02-01 13:28:16
【问题描述】:
由于我们数据库的重构,我希望重命名数据库中的一些外键。我们要应用的外键名称的格式因关系的基数而异(目前我们只有 1-n 和 1-1)。
我想识别所有 1-1 外键关系,以便我对它们应用不同的命名模板。我不知道如何实现这一点。到目前为止,我只能列出与此查询的所有外键关系:
SELECT RC.CONSTRAINT_NAME FK_Name
, KP.TABLE_NAME PK_Table
, KF.TABLE_NAME FK_Table
, KP.COLUMN_NAME PK_Column
, KF.COLUMN_NAME FK_Column
, RC.UNIQUE_CONSTRAINT_NAME PK_Name
, KP.TABLE_SCHEMA PK_Schema
, RC.MATCH_OPTION MatchOption
, RC.UPDATE_RULE UpdateRule
, RC.DELETE_RULE DeleteRule
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KF ON RC.CONSTRAINT_NAME = KF.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KP ON RC.UNIQUE_CONSTRAINT_NAME = KP.CONSTRAINT_NAME
SSMS 显然可以提取这些数据,因为在图表查看器中它以不同的方式显示两种类型的关系(在连接线的两端都有一个键)。
感谢任何帮助。
【问题讨论】:
标签: sql sql-server database relational-database