Хотите написать сценарий для всех объектов, которые зависят от таблицы SQL Server - PullRequest
3 голосов
/ 17 ноября 2009

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

Ответы [ 2 ]

6 голосов
/ 17 ноября 2009

Сначала вы можете попробовать эту ссылку Понимание зависимостей 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 , таблица 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'
1 голос
/ 17 ноября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...