2012-05-06 74 views
1

我正在使用連接到SQL Server 2008 R2的SQL Server Management Studio。如何在SQL Server Management Studio中創建'Pair'表?

  • 我有一個表稱爲User與列Iduniqueidentifier
  • 我有一個表稱爲Role與列Iduniqueidentifier
  • 我希望有一個表叫UserRolePair 2列:UserIdRoleId

我需要每一行都是唯一的(每個用戶不需要重複的角色)。

這很簡單 - 我只需右鍵單擊,然後選擇Indexes & Keys並創建一個新的唯一密鑰,即由兩列組成。

現在我需要做的 - 是創建UserIdUser表的Id列外鍵,並創建RoleIdRole表的Id列的外鍵。

但是,當我選擇Relationships從子菜單 - 我得到這樣的:

this1

首先的 - 爲什麼我在這裏有2個關係?

所有的二 - 當我現在要創建一個新的外鍵的每一列分別我得到這個:

this2

我不能選擇RoleIdRoleId列桌子!

它說我需要分配UserRole表的兩列與來自同一表的外鍵

解決方案是什麼?

是'唯一'是什麼原因導致我的問題?

回答

1

最好的辦法是使用T-SQL語句,而不是與視覺設計師一起努力。

一)建立外鍵從UserRolePairRole

ALTER TABLE dbo.UserRolePair 
ADD CONSTRAINT FK_UserRolePair_Role 
FOREIGN KEY (RoleID) REFERENCES dbo.Role(ID) 

二)建立外鍵從UserRolePairUser

ALTER TABLE dbo.UserRolePair 
ADD CONSTRAINT FK_UserRolePair_User 
FOREIGN KEY (UserID) REFERENCES dbo.User(ID) 

只需執行那些在查詢窗口(確保是在正確的數據庫!),你就完成了!

+0

謝謝!我會檢查它並根據需要重新發布 –

相關問題