Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 329
от 12.01.2008, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 443, Экспертов: 48
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 117295: Здравствуйте уважаемые Эксперты!!! Очень прошу помочь. У меня есть две таблицы: 1)Детали с полями Название, Количество, Описание 2)Заказ с полями ЗНазвание, ЗКоличество Помогите, пожалуйста, написать триггер, который при добавлени...

Вопрос № 117.295
Здравствуйте уважаемые Эксперты!!!
Очень прошу помочь.
У меня есть две таблицы:
1)Детали с полями Название, Количество, Описание
2)Заказ с полями ЗНазвание, ЗКоличество
Помогите, пожалуйста, написать триггер, который при добавлении данных в таблицу "Заказ"
автоматически проверял бы наличие требуемого количества соответствующих деталей в
таблице "Детали" и в случае не выполнения этого условия выдавал бы сообщение, а в случае

выполнения уменьшал бы количество деталей в таблице "Детали"

P.S. Пользуюсь MS SQL server 2000.
Заранее благодарю всех.
Отправлен: 07.01.2008, 03:04
Вопрос задал: Studentx86 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Челноков Виктор Альбертович
Здравствуйте, Studentx86!
Попробуйте следующий тригер
CREATE TRIGGER [dbo].[Добавление]
ON [dbo].[Заказ]
AFTER INSERT
AS
BEGIN
declare @i int
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
SELECT @i = Детали.Количество - inserted.ЗКоличество
FROM Детали INNER JOIN
inserted ON Детали.Название = inserted.ЗНазвание
if @i<0
begin
RAISERROR ('Деталей на складе меньше , чем заказано', 16, 1)
ROLLBACK TRANSACTION

end
UPDATE Детали
SET Количество = @i
FROM Детали INNER JOIN
inserted ON Детали.Название = inserted.ЗНазвание

END
Ответ отправил: Челноков Виктор Альбертович (статус: 5-ый класс)
Ответ отправлен: 07.01.2008, 07:52
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо!! Всё коротко и ясно. Очень выручили. Ещё раз спасибо!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.69 от 06.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное