1

SQL Server2008R2に接続されたSQLServerManagementStudioを使用しています。

  • UserIduniqueidentifier)で呼び出されたテーブルがあります
  • RoleIduniqueidentifier)で呼び出されたテーブルがあります
  • UserRolePair2列で呼び出されるテーブルが必要です:UserIdRoleId

各行を一意にする必要があります(ユーザーごとに重複する役割はありません)。

これは簡単です。右クリックして選択し、両方の列で構成されるIndexes & Keys新しい一意のキーを作成します。

ここで私がする必要があるのは、テーブルの列への外部キーを作成し、テーブルの列UserIdへの外部キーを作成することです。IdUserRoleIdIdRole

しかしRelationships、サブメニューから選択すると、次のようになります。

this1

まず第一に-なぜ私はここに2つの関係があるのですか?

次に、列ごとに個別に新しい外部キーを作成したい場合は、次のようになります。

this2

テーブルRoleIdId列を選択できません!Role

テーブルの両方の列に同じテーブルのUserRole外部キーを割り当てる必要があると表示されます。

解決策は何ですか?

私の問題を引き起こしているのは「ユニーク」ですか?

4

1 に答える 1

1

最善の策は、ビジュアルデザイナーと格闘するのではなく、T-SQLステートメントを使用することです。

UserRolePaira)からへの外部キーを作成しRoleます。

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

UserRolePairb)からへの外部キーを作成しますUser

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

クエリウィンドウでそれらを実行するだけで(正しいデータベースにあることを確認してください!)、完了です!

于 2012-05-06T13:12:57.713 に答える