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