Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Триггер и РКey


Автор: Neymexa 1.4.2010, 14:30
есть таблица 
UserID UserName UserSurname DepartmentID PositionID
1 Ivan Petrov 1 1
2 Ivan Sidorov 1 2
3 Petr Ivanov 1 2
4 Nikolay Petrov 1 3
5 Nikolay Ivanov 2 1
6 Sergey Sidorov 2 3
7 Andrey Bukin 2 2
8 Viktor Rybakov 4 1

если удаляют какую либо запись должен отрабатываться триггер(вставляются значиния null кроме UserID ).
как его написать если UserID PrimaryKey?

Автор: Akina 1.4.2010, 15:34
Цитата(Neymexa @  1.4.2010,  15:30 Найти цитируемый пост)
если удаляют какую либо запись должен отрабатываться триггер(вставляются значиния null кроме UserID ).
как его написать если UserID PrimaryKey? 

А чем мешает то, что он есть РК? его-то ты не трогаешь... будет что-то типа
Код

CREATE TRIGGER EraseValues_MyTable ON MyTable
INSTEAD OF DELETE
AS
BEGIN
  UPDATE MyTable, deleted
  SET MyTable.UserName = NULL,
      MyTable.UserSurname = NULL,
      MyTable.DepartmentID = NULL,
      MyTable.PositionID = NULL
  WHERE MyTable.UserID = deleted.UserID 
END

Автор: Neymexa 2.4.2010, 09:31
не помогает 

Сообщение 102, уровень 15, состояние 1, процедура after_update, строка 5
Неправильный синтаксис около конструкции ",".

Автор: Akina 2.4.2010, 09:36
Ну поправь синтаксис-то...

Автор: Neymexa 2.4.2010, 10:18
подскажи что значит 

Код

UPDATE MyTable, [color=red]deleted[/color]

Автор: tusha 2.4.2010, 15:03
Код

UPDATE MyTable
  SET MyTable.UserName = NULL,
      MyTable.UserSurname = NULL,
      MyTable.DepartmentID = NULL,
      MyTable.PositionID = NULL
  FROM Mytable, deleted
  WHERE MyTable.UserID = deleted.UserID 

?

Автор: Akina 2.4.2010, 15:13
Цитата(Neymexa @  2.4.2010,  11:18 Найти цитируемый пост)
подскажи что значит 

То, что есть смысл поискать в справке, что это...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)