Текущий архив: 2006.04.09;
Скачать: CL | DM;
ВнизПостроение иерархии зависимостей объектов БД Найти похожие ветки
← →
Ольга (2006-02-14 18:00) [0]Если в Enterprize Manager выбрать объект -> Все задачи -> Display Dependencies, можно получить два набора данных - список объектов, от которых зависит данный объект и список объектов, которые зависят от данного объекта.
Написала функцию, которая делает то же самое (только для первого уровня зависимости). Хочу теперь с помощью этой функции создать временную таблицу зависимостей объектов БД от самых независимых до самых зависимых, пронумеровать их.
Завязла в рекурсиях, ничего не получается... все циклит.
Может кто подскажет алгоритм создания такой таблицы?
Текст функции:
CREATE FUNCTION dbo.GetDependObj
(@name varchar(50), -- имя ибъекта БД
@type_depend int) -- тип зависимости
RETURNS @Data TABLE
(name varchar(50), xtype varchar(20))
AS
BEGIN
DECLARE @id int
SELECT @id=id FROM sysobjects WHERE name=@name
IF @type_depend=1 -- объекты, от которых зависит @name
BEGIN
INSERT INTO @Data
SELECT DISTINCT a.name, a.xtype
FROM sysobjects a, sysdepends b
WHERE b.id=@id and a.id=b.depid
UNION
SELECT DISTINCT a.name, a.xtype
FROM sysobjects a, sysforeignkeys b
WHERE b.fkeyid=@id and a.id=b.rkeyid
END
IF @type_depend=2 -- объекты, зависимые от @name
BEGIN
INSERT INTO @Data
SELECT DISTINCT a.name, a.xtype
FROM sysobjects a, sysdepends b
WHERE b.depid=@id and a.id=b.id
END
RETURN
END
← →
Nikolay M. © (2006-02-14 18:16) [1]sp_MSdependencies
?
http://www.sql.ru/articles/mssql/02030101UndocumentedSQL.shtml#sp_MSdependencies
← →
Ольга (2006-02-14 18:24) [2]Вот спасибо! Целый день убила... Оказывается это колесо уже давно изобрели! Еще раз спасибо - то что надо.
← →
Nikolay M. © (2006-02-14 18:41) [3]Не за что.
В принципе, эта ХП легко обнаруживается профайлером, если в ЕМ сделать тот самый просмотр зависимостей.
Страницы: 1 вся ветка
Текущий архив: 2006.04.09;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.014 c