gpt4 book ai didi

sql-server - 使用 information_schema 在 ms sql server 中查找外键

转载 作者:行者123 更新时间:2023-12-02 22:42:32 25 4
gpt4 key购买 nike

我正在尝试查找具有指向特定表的外键的所有表。所以我写了这个:

select t1.TABLE_NAME as pointsfrom, t2.TABLE_NAME as pointsto
from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r
join INFORMATION_SCHEMA.TABLE_CONSTRAINTS t1 on t1.CONSTRAINT_NAME=r.CONSTRAINT_NAME
join INFORMATION_SCHEMA.TABLE_CONSTRAINTS t2 on t2.CONSTRAINT_NAME=r.UNIQUE_CONSTRAINT_NAME
where t2.table_name = @mytable

这对于我正在处理的数据库中 24 个外键中的 22 个来说,在 90% 的情况下都有效。但对于 2 个 FK,unique_constraint_name 与 table_constraints 中的任何名称都不匹配。

这些名字也有点有趣。其中之一是“环境指示符”,带有空格。 FK 指向的字段名为“environment_designator”,带有下划线。另一个的 unique_constraint_name 为“文件名是唯一的”,这与我在“from”表或“to”表的定义中看到的任何内容都不对应。

我还应该在其他地方寻找 unique_constraint_name 的匹配项吗?

最佳答案

试试这个:

SELECT OBJECT_NAME(parent_object_id), OBJECT_NAME(referenced_object_id)
FROM sys.foreign_keys
WHERE referenced_object_id = OBJECT_ID(@mytable)

关于sql-server - 使用 information_schema 在 ms sql server 中查找外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com