Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
14-66128
Fix
2003-10-28 12:56
2003.11.20
Орешник


1-65920
Poof-poof
2003-11-08 04:40
2003.11.20
Как вставить в форму линк на сайт и ссылку на моё мыло? :)


4-66166
TurburatoR
2003-09-24 12:31
2003.11.20
Чтение из консольного приложения


14-66098
IronHawk
2003-10-28 12:11
2003.11.20
Какой тулзней можно писать видео-поток с


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский