2013-06-08 2 views
0

Итак, я вижу, что SQL имеет несколько таблиц, в которых хранятся только что вставленные и удаленные данные из таблиц, которые можно отнести. Я не заметил такую ​​таблицу для обновленных данных. В настоящее время я работаю с триггерами, и мне нужно применить триггер к обновлению. Как мне это сделать?SQL-вставка, удаление, обновление

USE [examene] 
GO 
/****** Object: Trigger [dbo].[trig1] Script Date: 6/8/2013 6:48:26 AM ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER trigger [dbo].[trig1] on [dbo].[participari] 
after insert,update,delete 
as 
begin 
    if (exists (select * from deleted)) 
     rollback 

    if (exists (select * from inserted,proiecte 
where inserted.idpr = proiecte.idpr 
and deadline<dela union 
select * from inserted,proiecte 
where inserted.idpr = proiecte.idpr and inserted.panala>proiecte.deadline)) 
     rollback 
end 

это мой триггер до сих пор

ответ

1

Там нет такого понятия, как updated виртуальной таблицы. Когда происходит обновление старых значений может быть найден в deleted и новые значения в inserted

Use the inserted and deleted Tables
Удаленные таблице хранятся копии изменяемых строк во время DELETE и UPDATE заявления. Во время выполнения инструкции DELETE или UPDATE строки удаляются из таблицы триггеров и переносятся на удаленную таблицу .

Удаленная таблица и таблица триггеров обычно не имеют общих строк. Вставляемая таблица хранит копии зависимых строк во время INSERT и UPDATE. Во время транзакции обновления или новые строки добавляются как к вставленной таблице, так и к таблице триггеров . Строки во вставленной таблице являются копиями новых строк в таблице триггеров.

Операция обновления аналогична операции удаления, за которой следует операция вставки ; старые строки сначала копируются в удаленную таблицу, , а затем новые строки копируются в таблицу триггеров и в вставленную таблицу .

+0

так что вся информация о обновлении вставляется после удаления старых записей? – morgred

+0

@ user1889231 Это означает только то, что с точки зрения триггера это пара операций удаления и вставки. Включен следующий абзац из документов. – peterm

+0

Я понимаю это сейчас. Большое спасибо за ваше время – morgred

Смежные вопросы