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

Откуда:
Сообщений: 36
Здравствуйте! Имеется следующая задача:
имеется база данных Sell c таблицами Заказы и ИсторияЗаказов. Необходимо создать триггер, который должен вставлять данные в таблицу ИсторияЗаказов после удаления данных из Заказы . Нужно скопировать следующие столбыцы из таблицы Заказы: ИД, [Дата/время заказа], Заказчик , Продавец; и создать два дополнительных [Тип действия], [Дата/время операции].

Вот мой код:
CREATE TRIGGER Удаление
    ON Заказы
    INSTEAD OF DELETE
AS
    INSERT INTO ИсторияЗаказов (ИД, [Дата/время заказа], Заказчик , Продавец)
        SELECT ИД, [Дата/время заказа], Заказчик , Продавец
        FROM Заказы
    INSERT INTO ИсторияЗаказов
	SELECT ИД, 'Удаление', GETDATE(), [Дата/время заказа], Заказчик, Продавец
	FROM deleted

Работает он не совсем так как надо. Добавляет из таблицы Заказы в Историю все имеющиеся там записи копируя ИД, [Дата/время заказа], Заказчик , Продавец, а поля [Тип действия], [Дата/время операции] заполянет NULL. Для удаляемой записи выводит правильно. Как можно поправить, что бы не копировал лишнее?
20 май 13, 00:48    [14318762]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
ROLpogo
Member

Откуда: Реутов
Сообщений: 216
    INSERT INTO ИсторияЗаказов (ИД, [Дата/время заказа], Заказчик , Продавец, <Имя поля с типом операции>, <Имя поля с датой/временем операции>)
    SELECT ИД, [Дата/время заказа], Заказчик , Продавец, 'Удаление', GETDATE()
    FROM deleted
20 май 13, 00:59    [14318774]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
natya
Member [заблокирован]

Откуда: Азербайджан, Баку
Сообщений: 347
[Дата/время операции] -----ето понятно


а что вам нужн [Тип действия], ////////?????


пример [Тип действия], ?????
20 май 13, 10:05    [14319361]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
natya
[Дата/время операции]пример [Тип действия], ?????
Вставка, редактирование, удаление.
А вот зачем Вам столько вопросительных знаков? ;)
20 май 13, 10:29    [14319500]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
baracs
Member

Откуда: Москва
Сообщений: 7204
wizzzi
Работает он не совсем так как надо. Добавляет из таблицы Заказы в Историю все имеющиеся там записи
А из "Заказы" строки удаляются?
Зачем 1-й insert?
20 май 13, 10:31    [14319512]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
wizzzi
    INSERT INTO ИсторияЗаказов (ИД, [Дата/время заказа], Заказчик , Продавец)
        SELECT ИД, [Дата/время заказа], Заказчик , Продавец
        FROM Заказы

Работает он не совсем так как надо. Добавляет из таблицы Заказы в Историю все имеющиеся там записи копируя ИД, [Дата/время заказа], Заказчик , Продавец, а поля [Тип действия], [Дата/время операции] заполянет NULL.

Вот прямо интересно — что же, вместо описанного, должна делать эта команда?
20 май 13, 10:38    [14319547]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
natya
Member [заблокирован]

Откуда: Азербайджан, Баку
Сообщений: 347
INSERT INTO ИсторияЗаказов (ИД, [Дата/время заказа], Заказчик , Продавец, <Имя поля с типом операции>, <Имя поля с датой/временем операции>)
SELECT ИД, [Дата/время заказа], Заказчик , Продавец, 'Удаление', GETDATE()
FROM deleted
---------------------------------------------------------------------------------
ребята задача уже не решено /?
20 май 13, 11:15    [14319869]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
baracs
Member

Откуда: Москва
Сообщений: 7204
natya
INSERT INTO ИсторияЗаказов (ИД, [Дата/время заказа], Заказчик , Продавец, <Имя поля с типом операции>, <Имя поля с датой/временем операции>)
SELECT ИД, [Дата/время заказа], Заказчик , Продавец, 'Удаление', GETDATE()
FROM deleted
---------------------------------------------------------------------------------
ребята задача уже не решено /?
Вот, пусть автор и ответит.
20 май 13, 11:44    [14320072]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
natya
Member [заблокирован]

Откуда: Азербайджан, Баку
Сообщений: 347
ребята в скл2000 можна создат триггеры????
20 май 13, 11:49    [14320103]     Ответить | Цитировать Сообщить модератору
 Re: Триггер удаления.  [new]
baracs
Member

Откуда: Москва
Сообщений: 7204
natya,

Да
20 май 13, 11:52    [14320130]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить