«Просмотр зависимостей» показывает все объекты, которые зависят от таблицы в SQL Server. Теперь, как мне использовать SSMS для создания сценариев для всех этих объектов в одной команде? Есть ли бесплатный инструмент, который делает это?
Хотите заскриптовать все объекты, которые зависят от таблицы SQL Server
Ответы (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'
SSMS использует SMO для извлечения зависимостей. DependencyWalker класс, а именно. Вы можете обернуть это в свой код, и SMO также имеет возможность записывать определения объектов с помощью Scripter (это то, что SSMS также использует для написания определений объектов).