Главная страница
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.027 c
4-66175
serjant
2003-09-24 12:19
2003.11.20
как из программы узнать, какой у неё PID?


3-65783
IGORYOK
2003-10-29 23:53
2003.11.20
Никто не слышал как в Дельфи менять местами записи ADO-таблицы


14-66078
ProjectMaker
2003-10-22 20:15
2003.11.20
Всегда ли находит тот, кто ищет?


6-66045
Pacifist
2003-09-23 20:21
2003.11.20
сливание текста в WinSock


14-66094
KAJ|6ACA
2003-10-29 14:29
2003.11.20
Подскажите хороший компьютерный учебник