1

我正在使用连接到 SQL Server 2008 R2 的 SQL Server Management Studio。

  • 我有一个User用列Id( uniqueidentifier)调用的表
  • 我有一个Role用列Id( uniqueidentifier)调用的表
  • 我想要一个名为UserRolePair2 列的表:UserIdRoleId.

我需要每一行都是唯一的(每个用户没有重复的角色)。

这很简单——我只需右键单击,选择Indexes & Keys并创建一个新的唯一键,它由两列组成。

现在我需要做的 - 是从表的列创建一个外键,并从表UserId的列创建一个外键。IdUserRoleIdIdRole

但是当我Relationships从子菜单中选择时 - 我得到了这个:

这1

首先 - 为什么我在这里有 2 个关系?

其次 - 当我现在想为每一列分别创建一个新的外键时,我得到这个:

这2

我无法选择表格RoleIdIdRole

它说我需要为表的两列分配同一个表UserRole中的外键。

解决办法是什么 ?

“独特”是什么导致了我的问题?

4

1 回答 1

1

最好的办法是使用 T-SQL 语句,而不是与视觉设计者纠缠不清。

UserRolePaira) 从to创建外键Role

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

UserRolePairb)从to创建外键User

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

只需在查询窗口中执行这些操作(确保在正确的数据库中!),您就完成了!

于 2012-05-06T13:12:57.713 回答