Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2017, 16:26   #1
Anette666k
Пользователь
 
Регистрация: 28.02.2016
Сообщений: 14
По умолчанию создание триггеров

Здравствуйте. помогите пожалуйста создать триггеры
Вложения
Тип файла: pdf ЛР 10_11 Microsoft SQL Server 2014.pdf (46.5 Кб, 16 просмотров)
Anette666k вне форума Ответить с цитированием
Старый 05.05.2017, 16:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.05.2017, 17:20   #3
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Гы - лабораторная - а таблицы есть?
Триггер создается элементарно
Код:
CREATE TRIGGER <Schema_Name, sysname, Schema_Name>.<Trigger_Name, sysname, Trigger_Name> 
   ON  <Schema_Name, sysname, Schema_Name>.<Table_Name, sysname, Table_Name> 
   AFTER <Data_Modification_Statements, , INSERT,DELETE,UPDATE>
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for trigger here

END
GO
hoolygan вне форума Ответить с цитированием
Старый 05.05.2017, 17:31   #4
Anette666k
Пользователь
 
Регистрация: 28.02.2016
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
ПО ЗАДАНИЮ
3.1 Создать триггеры контролирующие добавление (обновление) записей в таблицы, хранящие сведения о пассажирском и грузовом транспортах. Триггеры должны проверять, свободен ли указанный бокс

ПОЛУЧИЛОСЬ ТАК
CREATE TRIGGER [dbo].[Грузовой Транспорт после корректировки ]
ON [dbo].[Грузовой транспорт]
AFTER INSERT ,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Box int

SELECT @Box = [номер бокса]
FROM (
SELECT i.[номер бокса]
FROM
inserted i
JOIN [Пассажирский транспорт] t ON
i.[номер бокса] = t.[номер бокса] AND i.[гос номер] <> t.[гос номер]
UNION
SELECT i.[номер бокса]
FROM
inserted i
JOIN [Грузовой транспорт] t ON
i.[номер бокса] = t.[номер бокса] AND i.[гос номер] <> t.[гос номер]
) d

IF @Box IS NOT NULL BEGIN
DECLARE @Msg varchar(255)
SET @Msg = 'Бокс номер ' + Cast(@Box as varchar(10)) + ' уже занят другим автомобилем '
RAISERROR(@Msg, 16, 1)
RETURN
END


END
Anette666k вне форума Ответить с цитированием
Старый 05.05.2017, 22:33   #5
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Что будет в @Box, если ничего не найдет? Что сделает ошибка в триггере after? И какая задача стояла? Если сделать невозможным вставку - делайте не after а instead of. Select в переменную далеко не лучшее. Потому что если ничего не находит - то оставит предыдущее значение, а не нулл. А какое значение по-умолчанию в инте?
В общем - все от поставленой задачи зависит. Если просто показать, что есть занятые и все - то можно и так.
hoolygan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тест "Типовые узлы на основе триггеров" Aplika Микроконтроллеры, робототехника, схемотехника, 3D принтеры 0 07.06.2016 08:05
SQL SERVER. Помочь с составлением триггеров, функций и хранимых процедур Косюра Фриланс 3 20.12.2013 18:24
БД Interbase, создание триггеров HelpMe_IBase БД в Delphi 2 27.03.2011 16:59
InterBase 7, создание триггеров Claster БД в Delphi 2 08.04.2009 12:19
Как получить ID для новой записи с использованием триггеров?(Firebird) Paul Hindenburg БД в Delphi 20 01.06.2008 16:39