Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Триггер: как определить ID изменившейся строки?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4374
CREATE TRIGGER [dbo].[PersonChangedTrigger] 
   ON  [dbo].[Persons]
   AFTER UPDATE
AS 
BEGIN
   insert into LOG (PersonID) values(??!!??? - изменившаяся строка)
END   
31 янв 14, 11:17    [15499027]     Ответить | Цитировать Сообщить модератору
 Re: Триггер: как определить ID изменившейся строки?  [new]
Charles Weyland
Member

Откуда: Feorina "Fury" 161
Сообщений: 4374
LOG - это типа просто таблица обычная.
31 янв 14, 11:18    [15499035]     Ответить | Цитировать Сообщить модератору
 Re: Триггер: как определить ID изменившейся строки?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Все изменившиеся строки лежат в виртуальной таблице inserted. Они же, но с данными ДО изменения, в deleted.
31 янв 14, 11:18    [15499043]     Ответить | Цитировать Сообщить модератору
 Re: Триггер: как определить ID изменившейся строки?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Charles Weyland
CREATE TRIGGER [dbo].[PersonChangedTrigger] 
   ON  [dbo].[Persons]
   AFTER UPDATE
AS 
BEGIN
   insert into LOG (PersonID) values(??!!??? - изменившаяся строка)
END   
CREATE TRIGGER [dbo].[PersonChangedTrigger] ON  [dbo].[Persons] AFTER UPDATE AS 
INSERT LOG(PersonID)
SELECT i.PersonID
FROM inserted i JOIN deleted d ON i.PersonID=d.PersonID
WHERE NOT EXISTS(SELECT i.* INTERSECT SELECT d.*);
31 янв 14, 11:26    [15499112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить