如何在SQL Server Management Studio中创建“配对”表?

时间:2012-05-06 10:58:57

标签: ssms

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

  • 我有一个名为User的表格,其中包含Id列(uniqueidentifier
  • 我有一个名为Role的表格,其中包含Id列(uniqueidentifier
  • 我想要一个名为UserRolePair的表格,其中有两列:UserIdRoleId

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

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

现在我需要做的是创建从UserIdId表的User列的外键,并从RoleId创建一个外键到Id表的Role列。

但是当我从子菜单中选择Relationships时,我明白了:

this1

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

其次 - 当我想为每列创建一个新的外键单独时,我得到了这个:

this2

我无法选择RoleId Id表的Role列!

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

解决方案是什么?

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

1 个答案:

答案 0 :(得分:1)

最好的办法是使用T-SQL语句,而不是与视觉设计师一起努力。

a)创建从UserRolePairRole的外键:

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

b)创建从UserRolePairUser的外键:

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

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