我正在使用SQL Server 2008 R2。我想查询数据库并检索所有用户定义的表(很简单,SELECT Name FROM sys.tables
),但我希望它被排序,以便如果按顺序执行insert语句,它们将不会遇到外键约束。
换句话说,我希望按依赖项排序的表列表,以便最高级别的表(即没有依赖项的表)位于依赖它们的表之前。
查询此问题的最有效方法是什么?
感谢您的帮助。
答案 0 :(得分:2)
http://www.jasinskionline.com/technicalwiki/Default.aspx?Page=List-Tables-in-Dependency-Order-SQL-Server&NS=&AspxAutoDetectCookieSupport=1上讨论的''自上而下的层次结构''查询是否会产生您要查找的列表?
答案 1 :(得分:0)
你确定可以做到吗?在SQL中使用循环引用是合法的,因此没有完美的顺序是很常见的。可选的空值允许插入(后跟更新)。但在大多数情况下,树关系不是单向图。