Главная страница
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.025 c
14-66083
Woolen
2003-10-29 11:18
2003.11.20
Константы WinAPI


1-65911
Кен
2003-11-07 03:39
2003.11.20
Как избежать подвисания программы, когда процедура выполняется


14-66111
Ёжик
2003-10-28 12:58
2003.11.20
Вопрос на засыпку...


1-65904
Alibaba
2003-11-11 16:42
2003.11.20
TListBox


3-65722
nika_ufc
2003-11-02 00:17
2003.11.20
Помогите c ADO