Как программно получить список таблиц из SQL Server в порядке зависимости? - PullRequest
3 голосов
/ 11 ноября 2011

Я работаю с SQL Server 2008 R2.Я хочу сделать запрос к базе данных и получить все пользовательские таблицы (достаточно просто, SELECT Name FROM sys.tables), но я хочу, чтобы она была упорядочена таким образом, чтобы, если операторы вставки выполнялись в таком порядке, они не сталкивались с ограничениями внешнего ключа.

Другими словами, я хочу, чтобы список таблиц был отсортирован по зависимостям так, чтобы таблицы самого высокого уровня (т. Е. Те, у которых не было зависимостей) были перед теми, которые опираются на них.

Что является наиболееэффективный способ сделать запрос?

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Создает ли запрос '' иерархия сверху вниз '', обсуждаемый на http://www.jasinskionline.com/technicalwiki/Default.aspx?Page=List-Tables-in-Dependency-Order-SQL-Server&NS=&AspxAutoDetectCookieSupport=1, список, который вы ищете?

0 голосов
/ 11 ноября 2011

Вы уверены, что это МОЖЕТ быть сделано?В SQL допустимо иметь циклические ссылки, поэтому вполне понятно, что идеального порядка не существует.Необязательные значения NULL позволяют вставки (с последующим обновлением).Но древовидные отношения не являются однонаправленным графом в большинстве сценариев.

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