如何获取所有自动生成的外键名称?

时间:2017-01-26 11:55:13

标签: sql sql-server

按照我之前提出的问题:我正在尝试获取数据库的所有自动生成的外键。

在我的情况下(它必须是SQL Server 2014的典型行为),所有生成的外键约束都有一个名称FK__TableFrom__TableTo__1F63A897,其中键名(1F63A897)的结尾是自动生成的。所有名称很好的外键都像FK__TableFrom__TableTo。所以我需要使用密钥名称末尾的随机字符串来定位所有外键

我尝试使用LIKE运算符,但无法达到目标。

最优选的输出应为:

SCHEMA_NAME     |   TABLE_NAME      |   FOREIGN_KEY_NAME
--------------------------------------------------------
...             |   ...             |   ID
...             |   ...             |   ID
...             |   ...             |   ID
...             |   ...             |   ID
...             |   ...             |   ID
...             |   ...             |   ID
...             |   ...             |   ID

1 个答案:

答案 0 :(得分:6)

您可以轻松查阅SELECT * FROM sys.foreign_keys WHERE is_system_named = 1 目录视图:

sys_log

这将返回所有“系统命名”的外键约束,例如在创建它们时没有提供显式约束名称。