Я знаю, что вокруг этого было множество вопросов Q, но после прочтения никто, похоже, не испытывает такой же проблемы, как и я.SQL Server 2008 R2 Trigger
Справочная информация. Я ищу для создания инкрементных обновлений в кубе, но не имею временную метку обновления на таблице. Теперь я ищу создать отдельную таблицу, которая обновляется с помощью триггера с помощью gkey и текущей даты и времени, когда запись обновляется.
Мой триггер на столе выглядит следующим образом:
CREATE TRIGGER trgAfterUpdateVisitDetails ON [visit_details]
FOR UPDATE
AS
begin
declare @VD_Gkey nvarchar
declare @today DATETIME = SYSDATETIME()
insert into [UpdatedVD]
SELECT
@VD_Gkey, @today
FROM
[visit_details]
End
Это дает мне выход, как показано ниже, но с 917 линиями одного и того же:
+---------+-------------------------+
| VD_Gkey | today |
+---------+-------------------------+
| NULL | 2014-01-02 11:21:23.963 |
| NULL | 2014-01-02 11:21:23.963 |
+---------+-------------------------+
Я знаю, что это будет что-то очень просто, но я не могу обдумать это.
Любая помощь будет блестящей.
Спасибо.
Ваш триггер не относится к или '' Inserted' или таблиц псевдо Deleted', которые содержат информацию о тех строках, которые были на самом деле пострадавших командой 'UPDATE' ... вам нужно ** соединить ** с любой из этих двух псевдо-таблиц, чтобы ограничить ваш оператор' INSERT' теми строками, которые были ** фактически обновлены **! –