我使用的是關係表。在一個按鈕上點擊,我必須以這樣一種方式檢索數據庫中的所有表格,即所有主表格都在頂端(即從前端生成腳本)並將它們保存到文本文件中。編程方式獲取所有表中,DB w.r.t關係
回地面目的:我需要生成腳本訂單中所有表和在執行生成的腳本外鍵約束的錯誤不會occur.So我需要得到表中關係的順序。
我怎樣才能找回那樣的表?
我使用的是關係表。在一個按鈕上點擊,我必須以這樣一種方式檢索數據庫中的所有表格,即所有主表格都在頂端(即從前端生成腳本)並將它們保存到文本文件中。編程方式獲取所有表中,DB w.r.t關係
回地面目的:我需要生成腳本訂單中所有表和在執行生成的腳本外鍵約束的錯誤不會occur.So我需要得到表中關係的順序。
我怎樣才能找回那樣的表?
如果使用SQL Server Management Studio中:
右鍵單擊[你的數據庫] - >任務 - >生成腳本 - >下一步 - >下一步 - > [選擇表]下一頁 - > ...一路到最後,
嚮導應該能夠創建首先創建依賴對象的智能腳本。
編輯(2011年10月18日):
如果您從以下查詢的輸出腳本,你應該擔心外鍵的依賴給你的問題:
;with tcte(tid, tname, lvl)
as
(
select st.object_id, st.name, 0
from sys.tables st left join sys.foreign_keys sfk on sfk.parent_object_id = st.object_id
where sfk.name is null
union all
select st.object_id, st.name, 1
from sys.tables st left join sys.foreign_keys sfk on sfk.parent_object_id = st.object_id
where sfk.parent_object_id = sfk.referenced_object_id
union all
select st.object_id as tid, st.name, tcte.lvl + 1
from sys.tables st inner join sys.foreign_keys sfk on sfk.parent_object_id = st.object_id
inner join tcte on tcte.tid = sfk.referenced_object_id
where tcte.tid <> sfk.parent_object_id
)
select tname, max(lvl) lvl from tcte group by tname order by lvl
這是真的很混亂。爲什麼在這裏標記ASP.NET?爲什麼是C#?您是否正在創建SQL腳本,以便您可以複製數據庫對象?你是否試圖在網絡上顯示你的數據庫結構? – jwiscarson