Хотите заскриптовать все объекты, которые зависят от таблицы SQL Server

«Просмотр зависимостей» показывает все объекты, которые зависят от таблицы в SQL Server. Теперь, как мне использовать SSMS для создания сценариев для всех этих объектов в одной команде? Есть ли бесплатный инструмент, который делает это?


person Tony_Henrich    schedule 17.11.2009    source источник


Ответы (2)


Сначала вы можете попробовать эту ссылку Понимание зависимостей SQL

Во-вторых, у вас есть несколько вариантов проверки зависимостей.

используя sql_expression_dependencies таблица, чтобы увидеть зависимость X от Y, выполните следующий запрос.

SELECT * 
FROM sys.sql_expression_dependencies 
WHERE referencing_id = OBJECT_ID('X')
    AND referenced_id = OBJECT_ID('Y')
    AND referenced_schema_name = 'dbo'
    AND referenced_entity_name = 'Y'
    AND referenced_database_name IS NULL
    AND referenced_server_name IS NULL;

используя таблицу syscomments, системные комментарии SQL Server В таблице хранится исходный оператор определения SQL для каждого представления, правила, значения по умолчанию, триггера, ограничения CHECK и DEFAULT, а также хранимой процедуры в вашей базе данных. Это много информации! Вы можете запросить эту таблицу, чтобы получить список зависимых объектов, используя оператор SQL в следующей форме.

SELECT *
FROM syscomments 
INNER JOIN sysobjects sysobj ON syscomments.id = sysobj.id
WHERE charindex('your object to check', text) > 0 

используя sp_depends хранимая процедура, которая отображает информацию о зависимостях объектов базы данных, таких как: представления и процедуры, которые зависят от таблицы или представления, а также таблицы и представления, от которых зависит представление или процедура

EXEC sp_depends @objname = N'your object to check'
person RRUZ    schedule 17.11.2009
comment
Отличный ответ. Спасибо. Помогает через несколько лет. - person Mathew A.; 09.10.2013

SSMS использует SMO для извлечения зависимостей. DependencyWalker класс, а именно. Вы можете обернуть это в свой код, и SMO ​​также имеет возможность записывать определения объектов с помощью Scripter (это то, что SSMS также использует для написания определений объектов).

person Remus Rusanu    schedule 17.11.2009