У меня есть таблица с внешним ключом. Как я могу определить, в какой таблице FK является первичным ключом? Там около 200 таблиц, и я не знаю, как найти, откуда эта информация поступает/связана.Как найти, из чего стоит внешний ключ таблицы?
0
A
ответ
2
Используйте этот ..
SELECT fk.name,
Object_name(fk.parent_object_id) [Parent table],
c1.name [Parent column]
FROM sys.foreign_keys fk
INNER JOIN sys.foreign_key_columns fkc
ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns c1
ON fkc.parent_column_id = c1.column_id
AND fkc.parent_object_id = c1.object_id
INNER JOIN sys.columns c2
ON fkc.referenced_column_id = c2.column_id
AND fkc.referenced_object_id = c2.object_id
WHERE Object_name(fk.referenced_object_id) = 'Tablename' -- Replace with your tablename
AND c2.name = 'Columname' -- Replace with your columname
Или просто использовать
sp_help Tablename or [Alt]+F1
2
Это должно помочь. Просто запустите его в БД вы хотите запросить:
SELECT f.NAME AS ForeignKey
,SCHEMA_NAME(f.SCHEMA_ID) SchemaName
,OBJECT_NAME(f.parent_object_id) AS TableName
,COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName
,SCHEMA_NAME(o.SCHEMA_ID) ReferenceSchemaName
,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
INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id
GO
В принципе, первый столбец является FK, а затем схемы FK и объекта. Ниже перечислены имя столбца PK, его схема и объект.
1
Либо из ответов по NoDisplayName или Kris G. должны работать, но если вы хотите что-то легче запомнить, пока вы в SSMS, просто щелкните правой кнопкой мыши внешний ключ и выберите «Сценарий как> Создать в> Новое окно».
После этого вы получите скрипт, который можно использовать для (повторного) создания FK, и вы сможете увидеть, какой столбец он ссылается в какой таблице, прочитав скрипт.
Смежные вопросы
- 1. Как найти таблицы, имеющие внешний ключ для таблицы в Oracle?
- 2. Как SSIS получить внешний ключ из таблицы?
- 3. Для чего это стоит?
- 4. Как найти определенный внешний ключ таблицы через T-SQL?
- 5. Внешний ключ из таблицы в aspnet_Users: ASP.NET
- 6. Для чего стоит ic_launcher?
- 7. Не удалось удалить внешний ключ из таблицы
- 8. MVC дисплей внешний ключ из другой таблицы
- 9. Получение таблицы Внешний ключ из хранимой процедуры
- 10. Ссылка через внешний ключ из другой таблицы
- 11. Как найти все таблицы, имеющие определенный внешний ключ?
- 12. Внешний ключ, соединяющий три таблицы
- 13. Для чего стоит аббревиатура .NET?
- 14. Как показать внешний ключ таблицы в TimesTen?
- 15. Вставить внешний ключ из JComboBox
- 16. найти запись, в которой хранится внешний ключ
- 17. Каков наилучший способ найти максимальную запись таблицы за внешний ключ?
- 18. Как удалить данные из таблицы, содержащей внутренний ссылочный внешний ключ
- 19. MySQL: как обновить внешний ключ из той же таблицы?
- 20. Как удалить внешний ключ из таблицы MySQL динамически?
- 21. Как удалить из таблицы, которая содержит внешний ключ, зная основной ключ таблицы ссылок?
- 22. Как добавить первичный (суррогатный) ключ из одной таблицы в внешний ключ другой таблицы?
- 23. Удалить внешний ключ из MySQL
- 24. PhpMyAdmin: Как найти внешний ключ, отсутствующий в родительской таблице?
- 25. Одним из атрибутов является внешний ключ. может ли внешний ключ ссылаться на три таблицы:
- 26. C Ошибка - для чего стоит номер?
- 27. Создать внешний ключ из первичного ключа
- 28. , учитывая внешний ключ, как мне найти все таблицы, которые используют этот ключ?
- 29. Добавление же внешний ключ 96 столбцов таблицы
- 30. Web2py: id как внешний ключ
Похоже, что sp_help Tablename делает то, что мне нужно. Огромное спасибо! – Jemmeh