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

Откуда:
Сообщений: 4
Помогите пожалуйста создать триггер. Нужно, чтобы при введении записи он сравнивал дату_заезда и дату_выезда, чтобы дата_выезда была меньше, чем дата_заезда.
Первоначальный вариант моего триггера таков:
ALTER TRIGGER [dbo].[Ограничение_даты] 
ON [dbo].[Заказ_номера]
for INSERT
AS
BEGIN
IF  (Дата_заезда > Дата_выезда) BEGIN PRINT 'Дата заезда не может быть больше даты выезда' END;
END

Он подчеркивает мне дату заезда и дату, говорит недопустимое имя столбца. Затем мне подсказали про таблицу inserted и я наскребла еще кое-что
ALTER TRIGGER [dbo].[Ограничение_даты] 
ON [dbo].[Заказ_номера]
for INSERT
AS (SELECT * FROM Заказ_номера p 
			join inserted AS i
			on p.код_заказа_номера=i.код_заказа_номера)
BEGIN
IF  (i.Дата_заезда > i.Дата_выезда) BEGIN PRINT 'Дата заезда не может быть больше даты выезда' END;
END

Но ему всё равно не нравится. Он говорит, что Не удалось привязать составной идентификатор. Пробовала i менять на p и то же самое. Подскажите, что я делаю не так. Заранее благодарна.
1 дек 13, 14:35    [15220267]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на сравнение дат  [new]
<Гость>
Guest
CREATE TRIGGER [dbo].[TR_Заказ_номера_IU]
ON [dbo].[Заказ_номера]
FOR INSERT,UPDATE
AS
BEGIN
IF EXISTS
(
SELECT
*
FROM
inserted i
WHERE
i.[Дата_заезда] > i.[Дата_выезда]
)
BEGIN
RAISERROR('Дата заезда не может быть больше даты выезда',16,1)
ROLLBACK;
END
END
GO
1 дек 13, 14:49    [15220294]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на сравнение дат  [new]
Tanya2012
Member

Откуда:
Сообщений: 4
Огромнейшее вам спасибо, вы мне очень помогли!
1 дек 13, 14:57    [15220317]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на сравнение дат  [new]
<Гость>
Guest
Правда тут должен быть констрейн. Но думаю уже все равно.
1 дек 13, 15:05    [15220344]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить