Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Lepsik Member Откуда: glubinka Сообщений: 4256 |
в какой мере это возможно. Предпологается что нет циклических зависимостей. Что-то не совсем понятко каким образом склеивать subj. По идее сначала отнумеровать те у которых to_table i null, потом те что на них ссылаются. WITH cte ( from_table, to_table ) AS ( select DISTINCT o1.Name as from_table, o2.Name as to_table from sys.foreign_keys fk inner join sys.objects o1 on fk.parent_object_id = o1.object_id inner join sys.schemas s1 on o1.schema_id = s1.schema_id inner join sys.objects o2 on fk.referenced_object_id = o2.object_id inner join sys.schemas s2 on o2.schema_id = s2.schema_id where not ( s1.name = s2.name and o1.name = o2.name) ) SELECT from_table, to_table FROM ( SELECT from_table, to_table FROM cte union all SELECT name, null FROM sys.tables t where NOT EXISTS (select * from cte where cte.from_table = t.name) )x order by 1 |
22 июн 15, 23:28 [17804293] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Потом сортировать по уровню. Какой то такой подход, видимо... |
||
23 июн 15, 00:17 [17804481] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |