我正在使用SQL Server 2011並需要創建一個可視化表示(圖)。當前結構在表之間沒有關係(外鍵),並且有沒有任何主鍵的表。SQL數據庫圖提取
我已經嘗試過使用SQL數據庫圖表,但不能在表格之間添加任何關係,而不會在數據庫本身發生變化。
我想繪製關係,但不做任何更改。
有沒有免費的數據圖表軟件,我可以用來實現這一目標?我曾嘗試過DbVisualizer,但得到與SQL中的圖相同的問題。
我正在使用SQL Server 2011並需要創建一個可視化表示(圖)。當前結構在表之間沒有關係(外鍵),並且有沒有任何主鍵的表。SQL數據庫圖提取
我已經嘗試過使用SQL數據庫圖表,但不能在表格之間添加任何關係,而不會在數據庫本身發生變化。
我想繪製關係,但不做任何更改。
有沒有免費的數據圖表軟件,我可以用來實現這一目標?我曾嘗試過DbVisualizer,但得到與SQL中的圖相同的問題。
在你的情況我會做到以下幾點:爲您的數據庫
生成腳本(僅架構)(如@Serg建議的話)
可以使用SSMS
這樣做:右擊你的數據庫 - Tasks - Generate Scripts
。選擇所有表格,然後在Advanced
下,在Types of data to script
處選擇Schema only
。保存腳本並在某些測試環境中運行它以生成數據庫的副本。 (如果這樣做,在同一臺服務器上,您可能需要更改腳本一點,給新數據庫的另一個名字)
動態嘗試「猜測」外鍵關係
既然你有500 +表格,你可以嘗試使this script工作於 你(當然,它需要一些測試和調整,以適應你的 的情況),但我在下面的場景中使用它,它工作。
希望你有一個命名約定。在這個腳本中,假定引用的鍵被命名爲相同,但可以進行配置。
所以,我創建了下面的表格:
CREATE TABLE test (testid int identity(1,1) UNIQUE, description varchar(10))
CREATE TABLE test_item (id int identity(1,1) UNIQUE, testid int)
而下面的指標對自己的主鍵(通常情況下,你應該讓他們太)
CREATE CLUSTERED INDEX [ix_testid] ON [dbo].[test]([testid] ASC)
CREATE CLUSTERED INDEX [ix_testitemid] ON [dbo].[test_item]([id] ASC)
我沒有創建一個外鍵關係。
接下來,我跑到離Automatically guessing foreign key constraints文章劇本,我設法得到以下結果:
執行該腳本,你可以讓你的關係,你的新數據庫中創建生成的所有ALTER
聲明 - 從這個數據庫生成圖表,你就完成了! :)
ps。我建議你逐步測試它,例如首先使用一個表格,然後添加其他數據並檢查結果。 你可以嘗試我的小測試here的工作演示。
祝你好運!
優秀!謝謝!我一定會按照這些步驟! – PKirby
你可以下載它作爲圖像,並使用任何圖像編輯器來「繪製」表之間的關係線。出於好奇,是否有任何理由爲什麼你會有一個沒有定義外鍵的數據庫? –
如果我能找到可以根據列名自動繪製關係的軟件,那將會有很大的幫助,因爲我目前在數據庫中有500多個表。不知道爲什麼這個數據庫是按照它的方式創建的(沒有FK)。目前的DBA已經在垃圾數據上掙扎了很長一段時間。 – PKirby
如果你沒有定義外鍵,你期望軟件如何識別關係?通過猜測?通過擲骰子?這就是爲什麼需要外國約束的一個很好的例子:不僅要保持你的數據的完整性,還要*文件*你的模型 –