учитывая внешний ключ, как мне найти все таблицы, которые используют этот ключ?

У меня есть столбец (myColumn), который служит в качестве основного ключа таблицы (tableA). Я заметил, что 2 или 3 таблицы ссылаются на этот myColumn как на внешний ключ. как я могу обнаружить все таблицы, которые используют и ссылаются на myColumn?

Я предполагаю, что более 3 таблиц используют myColumn, потому что, когда я пытался обновить его, как это

UPDATE tableA SET myColumn = 1 WHERE myColumn = 1 

Обновлено 6 строк.

ранее мне предлагалось использовать

 sp_helpconstraint('your_table_name') 

но я узнал, что это не дает полной информации, которая мне нужна.

любые другие предложения?

Попробуйте это – это более современная версия SQL Server 2005 и более новая версия моего первоначального ответа, с которым связан Mitch (для SQL Server 2000):

 SELECT ConstraintName = fk.name, TableName = t.name, ColumnName = c.name FROM sys.foreign_keys fk INNER JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id INNER JOIN sys.tables t ON fk.parent_object_id = t.object_id INNER JOIN sys.columns c ON fkc.parent_object_id = c.object_id AND fkc.parent_column_id = c.column_id INNER JOIN sys.tables tref ON fk.referenced_object_id = tref.object_id INNER JOIN sys.columns cref ON fkc.referenced_object_id = cref.object_id AND fkc.referenced_column_id = cref.column_id WHERE tref.Name = 'Person' AND cref.Name = 'OID' 

Он использует представления системного каталога sys.foreign_keys и sys.foreign_key_columns чтобы узнать, какие таблицы / столбцы ссылаются на интересующую вас таблицу и столбцы.

Вы просто в основном вводите имя таблицы и имя столбца в WHERE – и вы получаете список других таблиц / столбцов, ссылающихся на эту таблицу / столбец

Если вы установите инструмент поиска бесплатного sql Redgate, вы можете легко найти схему своей базы данных для строк, таких как имена таблиц и столбцов.

http://www.red-gate.com/products/sql-development/sql-search/

Существуют другие способы поиска схемы с использованием системных таблиц, но я настоятельно рекомендую этот инструмент. Он станет частью вашего повседневного рабочего процесса, если вы будете постоянно обращать внимание на большие базы данных.

Interesting Posts

как получить только два числа после десятичной

Преобразование строк в столбцы после внутреннего соединения в SQL Server

SQL Server анализирует XML-значение столбца в таблице (для каждой строки)

Как вставить существующий GUID в поле Oracle RAW (16) в сценарии

Вставить в выбранный запрос

Где предложение, не работающее для буквенно-цифровых значений

Можно ли использовать службы отчетов для форматирования XML, возвращаемого в столбце типа данных XML?

Использование имен таблиц в качестве внешнего ключа для типа таблицы перечислений

Форматирование результата числового запроса SQL с произвольным числом десятичных знаков

SQL Server: как использовать счетчик

Неправильный результат при использовании bigint в sql-запросе

Запустить SQL хранимую процедуру для каждого значения в массиве

Разделенный вид без проверки

SQL Server: предотвращает блокировку таблицы во время вставок в цикле

Есть ли 64-разрядная версия SQL Server Management Studio (SSMS) 2005?

Давайте будем гением компьютера.