Ограничение в MS SQL - PullRequest
       22

Ограничение в MS SQL

0 голосов
/ 01 августа 2011

У нас есть таблица Person(Id, Name, Type) и Role(Id, Name) и привязка M:N таблица Person_Role(Person_Id, Role_Id), что означает «человек может иметь множество ролей».

Все, что мы хотим сделать, - это иметь уникальное ограничение в MS SQL 2008 R2, которое содержит уникальность

(Person.Name, Person.Type, Person.SetOfRoles). То есть (Jack, 1, {A,B}) и (Jack, 1, {B}) НЕ являются дубликатами.

Если бы мы могли использовать триггеры предварительной вставки Oracle, это решило бы все.

ВАЖНОЕ ОБНОВЛЕНИЕ: Мы используем MS SQL с Entity Framework и у нас нет точной команды вставки SQL.

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Вы можете использовать INSTEAD OF TRIGGER в Sql Server.

CREATE TRIGGER InsteadTrigger on Role
INSTEAD OF INSERT
AS
BEGIN
  INSERT INTO Role
       -- Your logic goes here
       FROM inserted
END
GO
0 голосов
/ 01 августа 2011

Используйте триггер "INSTEAD OF INSERT" Пример здесь: http://weblogs.asp.net/ryanw/archive/2006/02/02/437242.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...