Как получить все связи между всеми таблицами в SQL Server?
Есть ли способ получения связей между таблицами в SqlServer? Я пробовал использовать SELECT INFORMATION_SCHEMA.KEY_COLUMN_USAGE , так как этот способ работал в MySQL, но в SQLServer KEY_COLUMN_USAGE не имеет атрибутов REFERENCED_COLUMN_NAME и REFERENCED_TABLE_NAME .
Отслеживать
задан 25 мая 2021 в 18:12
175 9 9 бронзовых знаков
Например, EXEC sp_fkeys ‘TableName’ docs.microsoft.com/ru-ru/sql/relational-databases/… А вообще в базе sys есть дофига интересных таблиц.
25 мая 2021 в 18:19
select * from sys.foreign_keys
Просмотр зависимостей таблицы
Зависимости таблицы можно просмотреть в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
В этом разделе
- Перед началом работыБезопасность
- Просмотр зависимостей таблицы с помощью следующих средств:Среда SQL Server Management StudioTransact-SQL
Перед началом
Безопасность
Разрешения
Необходимо разрешение VIEW DEFINITION в базе данных и разрешение SELECT на представление sys.sql_expression_dependencies в базе данных. По умолчанию разрешение SELECT предоставляется только членам предопределенной роли базы данных db_owner. Если разрешения SELECT и VIEW DEFINITION предоставлены другому пользователю, он может просматривать все зависимости в базе данных.
Использование среды SQL Server Management Studio
Просмотр объектов, от которых зависит таблица
- В Обозревателе объектовразверните узел Базы данных, разверните саму базу данных, а затем разверните узел Таблицы.
- Щелкните таблицу правой кнопкой мыши и выберите Просмотр зависимостей.
- В диалоговом окне Имя> объекта Зависимостиобъектов выберите объекты, зависящие отобъекта, или Объекты, от которыхобъекта .
- Выберите объект в сетке Зависимости . Тип объекта (например, «Триггер» или «Хранимая процедура») появится в поле Тип .
Использование Transact-SQL
Просмотр объектов, зависящих от таблицы
- В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
USE AdventureWorks2022; GO SELECT * FROM sys.sql_expression_dependencies WHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription'); GO
Просмотр зависимостей таблицы
- В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine.
- На стандартной панели выберите пункт Создать запрос.
- Следующий пример возвращает объекты, которые зависят от таблицы Production.Product . Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
USE AdventureWorks2022; GO SELECT * FROM sys.sql_expression_dependencies WHERE referenced_id = OBJECT_ID(N'Production.Product'); GO
Как посмотреть связи таблиц sql
Для просмотра связей между таблицами в SQL можно использовать системную таблицу INFORMATION_SCHEMA . INFORMATION_SCHEMA содержит метаданные о базе данных, включая информацию о таблицах, столбцах и связях.
Чтобы просмотреть связи между таблицами, можно использовать запрос следующего вида:
SELECT tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name AND ccu.table_schema = tc.table_schema WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name='имя_таблицы';
Здесь имя_таблицы — это имя таблицы, связи которой вы хотите просмотреть.
Этот запрос вернет список всех внешних ключей в таблице, включая имя ключа, имя таблицы, столбец таблицы, связанный с внешним ключом, имя таблицы, связанной с внешним ключом, и соответствующий столбец в этой таблице. Эти данные могут помочь вам понять, как связаны различные таблицы в вашей базе данных.
Как посмотреть связи таблиц sql
Пользуюсь я phpMyAdmin и MySQL-Front
А как можно посмотреть визуально схему данных и связи в БД, т.е. как а Аксесе?
Сообщ. #2 , 25.10.07, 05:29

Full Member
Рейтинг (т): 5
Никак. И помоему Мускул вообще не поддерживает связи таблиц. ))
Сообщ. #3 , 25.10.07, 13:50
Рейтинг (т): 6
Цитата Michail04 @ 25.10.07, 05:29
И помоему Мускул вообще не поддерживает связи таблиц. ))
как это нет связей .
ну вы даете.
Сообщ. #4 , 25.10.07, 18:16
Unregistered
Цитата Michail04 @ 25.10.07, 05:29
Никак. И помоему Мускул вообще не поддерживает связи таблиц. ))
Зачем вы такое говорите?
Сообщ. #5 , 25.10.07, 20:45
Рейтинг (т): 231
По моему Michail04 прав, есть связи в запросе, и я как угодно могу связать таблицы, но нигде ведь не указано что таблица1 связана со второй?
Сообщ. #6 , 26.10.07, 04:43
Рейтинг (т): 6
Цитата Pr0[)!9Y @ 25.10.07, 20:45
По моему Michail04 прав, есть связи в запросе, и я как угодно могу связать таблицы, но нигде ведь не указано что таблица1 связана со второй?
вот я скопировала и поставила БД. В ней есть 2 таблицы.
Я сделала экспорт таблиц в файл *.sql
Вот что там написано:
Структура таблицы `Answers`