1
A
回答
1
select OBJECT_NAME(parent_object_id), OBJECT_NAME(referenced_object_id)
from sys.foreign_keys
where parent_object_id = object_id('SchemaName.LookupTableName')
我不是100%肯定我明白你想往哪个方向走与的关系,所以你可能想这个代替。
select OBJECT_NAME(parent_object_id), OBJECT_NAME(referenced_object_id)
from sys.foreign_keys
where referenced_object_id = object_id('SchemaName.LookupTableName')
0
这里的a blog post由皮纳尔戴夫与检查系统表以确定FK约束一个漫长的查询...
SELECT
K_Table = FK.TABLE_NAME,
FK_Column = CU.COLUMN_NAME,
PK_Table = PK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
Constraint_Name = C.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN (
SELECT i1.TABLE_NAME, i2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT ON PT.TABLE_NAME = PK.TABLE_NAME
---- optional:
ORDER BY
1,2,3,4
WHERE PK.TABLE_NAME='something'WHERE FK.TABLE_NAME='something'
WHERE PK.TABLE_NAME IN ('one_thing', 'another')
WHERE FK.TABLE_NAME IN ('one_thing', 'another')
0
的基本想法是,你想知道哪些表的外键进入有问题的桌子。
select tchild.table_name,tparent.table_name
from information_schema.table_constraints tchild
join information_schema.referential_constraints ref
ON tchild.constraint_name = ref.constraint_name
JOIN information_schema.table_constraints tparent
ON ref.unique_constraint_name = tparent.constraint_name
where tchild.constraint_type = 'FOREIGN KEY'
AND tparent.table_name = '......'
离开最后where子句获取所有东西。
相关问题
- 1. ReSharper:查找Page.aspx的使用情况
- 2. Maven查找财产使用情况
- 3. 查找内存使用情况
- 4. 在不使用蛮力/查找表的情况下查找bezier的alp点
- 5. 如何在不查找表格的情况下使用_IEFormElementRadioSelect
- 6. sql server:通过数据库查找表的使用情况
- 7. Oracle DB中的嵌套表使用情况,PL/SQL
- 8. 子查询使用情况
- 9. 如何在Java中使用Newrelic查找线程使用情况?
- 10. 如何使用PowerShell查找CPU和RAM使用情况?
- 11. 查找API调用使用情况的方法
- 12. 使用情况下表达
- 13. 记事本++查找和我的情况
- 14. 使用JAVA检查Internet使用情况
- 15. 如何在unix中查找oracle的内存使用情况?
- 16. Shell脚本查找目录的磁盘使用情况
- 17. 查找基础实体的使用情况
- 18. 查找磁盘中某个目录的使用情况%
- 19. 在Linux中查找线程的CPU使用情况
- 20. Java:查找反射代码的使用情况
- 21. 如何查找“胖”程序的内存使用情况?
- 22. 使用递归查找总和相等的情况
- 23. 如何在Windows 7中查找CPU使用情况的OID?
- 24. 如何在PostgreSQL中查找IP对的最高使用情况?
- 25. 如何查找Haskell中程序的内存使用情况
- 26. 如何查找结果集的磁盘使用情况?
- 27. 在qnx中查找进程线程的堆使用情况
- 28. 如何查找Websphere的堆使用情况
- 29. 如何查找谷歌分析器中的CPU使用情况
- 30. linux命令查找远程Windows计算机上的磁盘使用情况
我很困惑。您正在查找使用特定查找*表格*的*表格? –
它们是否都与查找表有外键关系?如果不是,你正在寻找具有特定列名的所有表,例如'LookUpTableId'? –
@ Martin--并非所有人都可能拥有查找表的外键。我正在查看一些遗留数据库,我也不确定列的名称在所有表中是否相同。 – Joe