Jak wyświetlić wszystkie pliki FK w bazie danych sqlserver?Czy można wyświetlić listę wszystkich kluczy obcych w bazie danych?
Odpowiedz
Używam tego stwierdzenia, wygląda na to, że działa całkiem nieźle.
SELECT RC.CONSTRAINT_NAME FK_Name
, KF.TABLE_SCHEMA FK_Schema
, KF.TABLE_NAME FK_Table
, KF.COLUMN_NAME FK_Column
, RC.UNIQUE_CONSTRAINT_NAME PK_Name
, KP.TABLE_SCHEMA PK_Schema
, KP.TABLE_NAME PK_Table
, KP.COLUMN_NAME PK_Column
, 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
Teoretycznie jest to trudne. Model relacyjny pozwala dowolnemu polu odnosić się do dowolnego innego pola. Które z nich są rzeczywiście używane, określają wszystkie możliwe instrukcje SELECT, które mogą zostać użyte.
W praktyce zależy to od tego, ile tabel zawiera definicje FK. Jeśli ktoś zadał sobie trud starannego zdefiniowania wszystkich referencji FK - a instrukcje SELECT trzymają się tych reguł - możesz je zapytać.
Jednakże, ponieważ SELECT może przyłączyć się na niczym, nie ma gwarancji, że masz chyba że masz również wszystkie SELECT wszystkich FK użytkownika.
Edit.
SELECT f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
może pracować dla Ciebie.
Wszystkie zdefiniowane klucze obce są zdefiniowane. Jak mam zapytać o zdefiniowane klucze obce? –
Nie jest to w żaden sposób odpowiedź na pytanie. Klucz obcy to rzecz prawdziwa, obiekt w bazie danych (lub przynajmniej własność obiektu). Pytanie nie pyta o listę wszystkich możliwych kolumn, do których można dołączyć, co nie miałoby sensu. –
@Byron Whitlock: "Wszystko" rzadko oznacza wszystko, zwykle oznacza "Wszystkie oprócz kilku wyjątków". –
Można również użyć kanoniczną schematu information_schema w SQL Server 2005 roku:
How to find foreign key dependencies in SQL Server?
To będzie pracować w innym baz danych, jak również.
używam http://technet.microsoft.com/en-us/library/ms189807.aspx
SELECT * FROM sys.foreign_keys
To znaczy, jeśli są na co najmniej SQL Server 2005+ i chcesz zobaczyć listę nazw FK.
Ale prawdopodobnie chcesz dowiedzieć się więcej o tabelach, które są ze sobą powiązane, prawda, to tam odpowiedź jest przydatna.
Tutaj jest bardziej pouczający sposób prezentowania go
SELECT DISTINCT PARENT_TABLE =
RIGHT(Replace(TC.constraint_name, 'FK_', ''),
Len(Replace(TC.constraint_name, 'FK_', '')) - Charindex('_', Replace(TC.constraint_name, 'FK_', ''))),
CHILD_TABLE = TC.table_name,
CU.column_name,
TC.constraint_name,
TC.constraint_type
FROM information_schema.table_constraints TC
INNER JOIN information_schema.constraint_column_usage CU
ON TC.constraint_name = CU.constraint_name
WHERE TC.constraint_type LIKE '%foreign'
OR TC.constraint_type LIKE '%foreign%'
OR TC.constraint_type LIKE 'foreign%'
- 1. Jak wyświetlić listę wszystkich kluczy obcych za pomocą "Z NOCHECKIEM" w SQL Server
- 2. Wiele kluczy obcych?
- 3. Podstawy kluczy obcych w MySQL?
- 4. Czy naprawdę powinienem używać kluczy obcych?
- 5. filtrowania kluczy obcych w Django
- 6. Wyświetlanie wszystkich tabel w bazie danych
- 7. Lista wszystkich tabel w bazie danych
- 8. Jak załadować elementy kluczy obcych w Tastypie
- 9. Lista wszystkich tabel w bazie danych
- 10. Jak wyświetlić listę wszystkich baz danych w powłoce Mongo?
- 11. Jak mogę wyświetlić listę wszystkich wyzwalaczy bazy danych w sqlite?
- 12. Czy można przechowywać javascript w bazie danych?
- 13. Jak wyświetlić listę wszystkich pakietów w Nuget
- 14. Enterprise Architect: Ukryj etykiety kluczy obcych w diagramie bazy danych?
- 15. Jak uzyskać listę zablokowanych użytkowników w bazie danych Oracle?
- 16. Django serializacji kluczy obcych obiektów
- 17. kluczy obcych i MySQL Błędy
- 18. Zmiana właściciela wszystkich obiektów w bazie danych
- 19. Definiowanie relacji kluczy obcych dla modeli Railsowych
- 20. Czy można wyświetlić listę wszystkich użytkowników w grupie TFS z serwera SQL Server
- 21. Czy można zmienić listę w zagnieżdżony dyktat kluczy * bez * rekursji?
- 22. Tablice skrzyżowań a tablice kluczy obcych?
- 23. Jak wyświetlić listę wszystkich zmiennych klasy
- 24. Dlaczego schemat bazy danych Wordpress nie używa kluczy obcych?
- 25. Wstawianie danych i ustawianie kluczy obcych za pomocą Postgreatora
- 26. Generowanie skryptu wszystkich indeksów w bazie danych
- 27. Dodawanie nazwanych kluczy obcych w SQL CREATE
- 28. Django: znaleźć wszystkie odwołania odwrotne kluczy obcych
- 29. Jak wyświetlić listę wszystkich zarządzanych obiektów w stercie w .Net?
- 30. Czy istnieje sposób, aby programowo wyświetlić listę wszystkich zależności gradle?
Uwaga! 'INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS' pomija niektóre klucze obce, które zwraca' sys.foreign_keys' (w moim przypadku klucz obcy z 'Wymuszaj dla replikacji' ustawiony na' Nie '. Zamiast tego użyłem tej odpowiedzi: http: // stackoverflow. com/a/10697248/14731 – Gili
Niech cię Bóg błogosławi, bo uratowałeś mnie dzisiaj - nie mogłem wymyślić tego! – LearnByReading