Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.033 c
2-1143284734
Толян
2006-03-25 14:05
2006.04.09
рисование таблицы


2-1143024463
Steplerr
2006-03-22 13:47
2006.04.09
Вывод в Excel


3-1139663245
Chel
2006-02-11 16:07
2006.04.09
Работа с TDBGrid


1-1141567051
X9
2006-03-05 16:57
2006.04.09
Узнать доступность MSXML


2-1143223901
ЧиЧиЧи
2006-03-24 21:11
2006.04.09
Как можно создать объект?