2011-04-12 89 views
10

我在審查這個數據庫並創建外鍵,相信我他們不存在。我正在使用SSMS在視覺上讓我知道外鍵丟失,並且創建它們。是否有任何配置讓圖設計者顯示特定列是否已經是外鍵的一部分?這將幫助我更快識別丟失的FK。如何使Database Diagram在Management Studio中直觀顯示外鍵?

這是它是如何的當前顯示:

Current

這就是我正在尋找(或類似的東西):

Desired

我只是需要一些視覺指示器(就像我在其他工具中看到的那樣)顯示我是否某列是FK的一部分。

回答

3

在SSMS中,如果展開數據庫表的樹,然後展開Columns文件夾,則列旁邊的圖標將是銀/灰色鍵(如果它是外鍵關係的一部分),但不幸的是它會贏得不會向您顯示其映射到哪個列的列。

您也可以在SSMS中創建一個新圖,方法是右鍵單擊樹中數據庫下方的「數據庫圖」文件夾,然後選擇「新建數據庫圖」。您將在外鍵存在的表格之間找到行。

您也可以使用第三方工具從您的數據庫模式(如Microsoft Visio或Sparx Enterprise Architect)中反向設計圖。

我不確定SSMS Express是否支持這些功能,所以你可能不太喜歡任何花哨/視覺效果。

+1

但有沒有辦法在數據庫圖中顯示這個? – 2011-04-12 21:48:57

+1

您可以通過右鍵單擊圖表並選擇「顯示關係標籤」來打開關係標籤。儘可能接近我的想法。 – 2011-04-12 21:53:19

+0

我試過了。這不是我正在尋找的,因爲它不能幫助我構建缺失的FK ... – 2011-04-12 21:56:14

3

我還沒有找到一種方法來直觀地做在Management Studio中,但你可以嘗試以下方法:

select f.name as ForeignKey, OBJECT_NAME(f.parent_object_id) as TableName, 
     COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName, 
     OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName, 
     COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName 
    from sys.foreign_keys f 
     inner join sys.foreign_key_columns fc ON f.OBJECT_ID = fc.constraint_object_id 

這不是視覺,但你會更快檢查

+0

這表明我已經創建了FK。事情是我需要知道那些沒有創建的,因爲我正在爲這個數據庫創建FK。我對這個數據庫有了很好的瞭解,所以我正在尋找一種方法來查看圖中字段的可視指示符,顯示字段是否是FK的一部分。 – 2011-04-12 22:01:38

4

我知道這是一箇舊帖子,但這可能有助於其他人。

在SSMS數據庫圖表中,通過右鍵單擊表格>然後選擇「表格視圖」>然後選擇「鍵」,這將只顯示該表格中的PK和FK以及所有其他鍵。 好吧,你說你需要它在SSMS數據庫圖表內沒有問題的所有表格上點擊背景(沒有選擇任何項目),然後按「Ctrl + A」選擇全部,然後用鼠標在選定的表格上單擊鼠標右鍵>然後選擇「table view」>然後選擇「keys」,這將顯示PK和FK以及每個選定表格中的所有其他鍵。那麼如果您需要查看給定表格的全部列名稱,則可以更改該表格的「表格視圖」並將其更改回來。

這樣,你看到什麼了,什麼也沒有得到FK ......

希望這有助於其他人一樣有我。

相關問題