Вы можете предотвратить это в первую очередь, установив уникальное ограничение на столбец Userid
. Однако перед этим вам нужно будет удалить существующие дубликаты. Учитывая имеющуюся у нас информацию (а Userid
и Roleid
), на самом деле нет способа "правильно" сделать это. Как отметил @Joe Stefanelli в своем комментарии, вам нужно решить, какая роль является «правильной» для каждого пользователя. Это звучит как ручной процесс. (Если вы заранее не знаете, что в каждом случае должен храниться только первый, в этом случае @Thomas имеет хороший ответ.)
Из любопытства, есть ли конкретная причина, по которой пользователь не может (или не должен в этом случае) иметь несколько ролей? Обычно это то, для чего нужны роли, применение множества наборов разрешений и т. Д. Для разных пользователей способом «многие ко многим». Думайте об этом с точки зрения объектно-ориентированного дизайна. Роли - это интерфейсы (типы), а пользователи - это классы (реализации). Имея несколько ролей, каждый пользователь может превратиться в несколько типов пользователей по всей системе.