Ваш дизайн неправильный.
Отношение «многие ко многим» определяется таблицей, которая состоит только из двух идентификаторов рассматриваемых таблиц, которые вместе образуют составной ключ.У вас почти такой дизайн, но у вас есть дополнительный первичный ключ к таблице «отношений», который разрушает все:)
Если вы используете этот код для генерации ваших таблиц, вы получите правильные отношения:
create table users(
userid int identity(1,1) primary key,
--other columns
username varchar(10)
)
create table roles(
roleid int identity(1,1) primary key,
rolename varchar(10)
)
create table usersroles(
userid int foreign key references users(userid),
roleid int foreign key references roles(roleid),
primary key (userid, roleid)
)