Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

Не могу правильно создать триггер   Найти похожие ветки 

 
jazz   (2003-10-30 17:23) [0]

Создаю триггер для таблицы Табл1 и лог этой таблицы ЛТалб1
тригере обрабатываю событие IF UPDATE(DELIVERED) "DELIVERED поле с типом BIT", при изменени поля DELIVERED с False на True добавлюя в таблицу ЛТабл1 CURRENT_USER и Дату.. все работает при событие Update он заносит юзера и дату в таблицу ЛТабл1 но после этого когда открываю тадблицу Табл1 и хочу в ручную или же запросом поменять свойста DELIVERED любой записи на противоположный (True > False или False > True) Sql Server выдает ошибку (string or binary type truncated) если убираю INSERT из тригера и делаю его DISABLE все меняеться в чем дело?


 
Delirium ©   (2003-10-30 17:25) [1]

Сумбур... приведи полный скрипт триггера


 
jazz   (2003-10-30 17:30) [2]

CREATE TRIGGER [TRIGGER1] ON dbo.tbl_lease
FOR INSERT, UPDATE, DELETE
AS

DECLARE @ID int, @USER varchar(30), @date varchar(10)

SET @USER = CURRENT_USER
SET @DATE = getdate()
SELECT @ID = ID FROM INSERTED

IF UPDATE(DELIVERED)
BEGIN
INSERT INTO LTBL_LEASE
(USERNAME,DATE,ID,WORK)
VALUES (@USER,@Date,@ID,"Сдано в прокат")
END


 
jazz   (2003-10-30 17:36) [3]

точнее в строке SELECT @ID = ID FROM INSERTED
в место INSERTED должно быть DELETED а может я и не прав:)


 
Nikolay M. ©   (2003-10-30 17:39) [4]

И все эти манипуляции должны быть одинаковы в INSERT, UPDATE, DELETE?


 
Delirium ©   (2003-10-30 17:55) [5]

SELECT @ID = ID FROM INSERTED - опасная операция, что будет в @ID если в INSERTED нет ни одной записи или на оборот - больше одной ?


 
Delirium ©   (2003-10-30 18:00) [6]

Я бы написал так

CREATE TRIGGER [TRIGGER1] ON dbo.tbl_lease
FOR INSERT, UPDATE, DELETE
AS
IF UPDATE(DELIVERED)
INSERT LTBL_LEASE (USERNAME,DATE,ID,WORK)
SELECT CURRENT_USER, getdate(), ID, "Сдано в прокат" FROM INSERTED


 
Fay   (2003-10-30 19:10) [7]

SELECT @ID = ID FROM INSERTED - это не опасная, а очень глупая операция



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
14-66074
Izyum
2003-10-29 17:24
2003.11.20
Оформление форума


1-65853
Scordion
2003-11-09 21:26
2003.11.20
Подскажите компонент


3-65761
France
2003-09-22 19:14
2003.11.20
Как создать базу данных динамически для Interbase6.0 FireBird1.x?


3-65703
SasaR
2003-10-30 10:39
2003.11.20
Yaffi Personal


3-65776
rh
2003-10-31 08:00
2003.11.20
Выгрузить результаты запроса в Excel