Определите, какие объекты ссылаются на таблицу в SQL Server
Я работаю с SQL Server 2008, и у меня есть база данных, которая содержит более 1500 столбцов и около 500 хранимых процедур и....
Я хочу переименовать таблицу, которая имеет несколько отношений и на которые ссылаются во многих хранимых процедурах и представлениях и....
Как я могу получить все элементы в базе данных, которые связаны с этой таблицей?
Благодарю.
4 ответа
Если вам нужно найти объекты базы данных (например, таблицы, столбцы, триггеры) по имени - взгляните на БЕСПЛАТНЫЙ инструмент Red-Gate под названием SQL Search, который делает это - он ищет всю вашу базу данных на предмет любого типа строк.
Это отличный обязательный инструмент для любого администратора БД или разработчика базы данных - я уже упоминал, что это абсолютно БЕСПЛАТНО для любого вида использования?
С помощью sys.dm_sql_referencing_entities
:
SELECT
referencing_schema_name, referencing_entity_name, referencing_id,
referencing_class_desc, is_caller_dependent
FROM
sys.dm_sql_referencing_entities ('mySchemaName.myTableName', 'OBJECT');
GO
где 'mySchemaName.myTableName'
это ваш schema.table, например 'dbo.MyTable'
Это еще одно решение, которое я нашел. Вам не нужно устанавливать какие-либо инструменты. Просто запустите анализатор запросов.
Use [Database]
Go
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'SP_Pay_GetData'
order by referencing_object_name
если вам нужна ссылка на элемент БД, такой как таблица, столбец, процедура и т. д.
Вы можете использовать инструменты визуального эксперта , мы можем проанализировать код SqlServer code
больше информации: https://www.visual-expert.com/EN/visual-expert-documentation/code-cross-references/