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

Откуда:
Сообщений: 44
Последнее задание из серии. Подскажите , как делать, где читать. Спасибо за помощь
Предположим, есть таблица t_Inv (Расходная накладная – заголовок)

CHID DocDate DocID Summ

CHID – уникальное поле

Подчиненная таблица t_InvD (Расходная накладная – детальная часть)

CHID ProdID ProdeName Price

CHID – внешний ключ

Существует триггер устанвливающий знаечние поле t_Inv.Summ, суммируя значения по полю t_InvD.Price.

Необходимо создать (каким образом?) ограничение* на изменение данных, как в детальной части, так и в заголовке, если дата и время транзакции не в текущем дне и не до 18:00.

* Подразумевается написание скрипта на T-SQL с комментариями, который установит указанное ограничение
24 окт 15, 14:41    [18321039]     Ответить | Цитировать Сообщить модератору
 Re: Как создать ограничение для двух таблиц  [new]
имхо, не поможет, но все же...
Guest
Anastassie,
Делаем триггер after update на t_Inv и в нем как-то так:
IF EXISTS(
SELECT	1
FROM
		deleted		AS	d
WHERE
		GETDATE() < CAST(d.DocDate AS DATE)
		OR
		GETDATE() > CAST(CAST(d.DocDate AS DATE) AS DATETIME) + CAST('18:00:00' AS TIME)
)
	RAISERROR('Изменения запрещены',16,1)


Для второй таблицы делается аналогично, лень писать.
24 окт 15, 20:42    [18321895]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить