powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер с условиями
13 сообщений из 13, страница 1 из 1
Триггер с условиями
    #39937968
Здравствуйте, помогите пожалуйста написать триггер, который будит проставлять количество часов по предметам, если заранее не известно какие предметы будут храниться в БД. Помогите разобраться!
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937973
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Выполните пункт 4 и пункт 6 .
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937977
Таблицы, которые нужно использовать:
Нагрузка (ID, СотрудникID, КлассID, ПредметID, Часы)
Дисциплины (ПредметID, Название предмета)

Версия программы: Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) Mar 29 2009 10:11:52 Copyright (c) 1988-2008 Microsoft Corporation Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937978
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Илья Сухенко,

И вот это тоже:

- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937981
Создание таблицы Нагрузка:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE [dbo].[Нагрузка](
	[ID] [int] NOT NULL,
	[СотрудникID] [int] NOT NULL,
	[КлассID] [nchar](5) NOT NULL,
	[ПредметID] [int] NOT NULL,
	[Часы] [int] NOT NULL,
 CONSTRAINT [PK_Нагрузка] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]



Заполнение данными таблицы Нагрузка
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
INSERT INTO [education].[dbo].[Нагрузка]
           ([ID]
           ,[СотрудникID]
           ,[КлассID]
           ,[ПредметID]
           ,[Часы])
     VALUES
           (1, '1А', 1, 0),
           (2, '2А', 2, 0)
GO



Создание таблицы Дисциплины:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE [dbo].[Дисциплины](
	[ПредметID] [int] NOT NULL,
	[Название предмета] [nchar](30) NOT NULL,
 CONSTRAINT [PK_Дисциплины_1] PRIMARY KEY CLUSTERED 
(
	[ПредметID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO



Заполнение таблицы Дисциплины данными:
Код: sql
1.
2.
3.
4.
5.
6.
7.
INSERT INTO [education].[dbo].[Дисциплины]
           ([ПредметID]
           ,[Название предмета])
     VALUES
           (1, Хор),
           (2, МХК)
GO



Желаемый результат на картинке
Поле часы должно заполняться автоматически триггером
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937982
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. автоматом должно 120 проставляться что ли?
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937988
Гавриленко Сергей Алексеевич,
Да, только для предмета с ID = 1
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937989
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Сухенко,

А для предмета с ID = 2? А ID = 3?
Опишите нормально вашу задачу, зачем партизаните?
...
Рейтинг: 0 / 0
Триггер с условиями
    #39937995
Гавриленко Сергей Алексеевич,

Прошу прощение за мою тупость.
Что должен делать триггер:
есть предмет с ID = 1 количество часов по этому предмету для 1 курса = 120 часов.
есть предмет с таким же ID, только для 2 курса количество часов = 56 часов
есть предмет с ID = 2 количество часов по этому предмету для 1 курса = 50 часов
есть предмет с таким же ID, только для 2 курса количество часов = 54 часов, предметы можно добавлять новые, т.е. нам заранее не известно количество дисциплин.
...
Рейтинг: 0 / 0
Триггер с условиями
    #39938030
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Илья Сухенко
Что должен делать триггер:
есть предмет с ID = 1 количество часов по этому предмету для 1 курса = 120 часов.
есть предмет с таким же ID, только для 2 курса количество часов = 56 часов
есть предмет с ID = 2 количество часов по этому предмету для 1 курса = 50 часов
есть предмет с таким же ID, только для 2 курса количество часов = 54 часов, предметы можно добавлять новые, т.е. нам заранее не известно количество дисциплин.
В таком случае делают и заполняют данными таблицу, при чём тут триггер?
...
Рейтинг: 0 / 0
Триггер с условиями
    #39938078
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Илья Сухенко
Что должен делать триггер:
есть предмет с ID = 1 количество часов по этому предмету для 1 курса = 120 часов.
есть предмет с таким же ID, только для 2 курса количество часов = 56 часов
есть предмет с ID = 2 количество часов по этому предмету для 1 курса = 50 часов
есть предмет с таким же ID, только для 2 курса количество часов = 54 часов, предметы можно добавлять новые, т.е. нам заранее не известно количество дисциплин.
В таком случае делают и заполняют данными таблицу, при чём тут триггер?


1. Это студент.
2. Любой студент ленив и необразован по определению.
3. Он слыхал, что триггеры все могут сделать за нас.
4. Вот откуда ноги триггера растут.
...
Рейтинг: 0 / 0
Триггер с условиями
    #39938087
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

В данном случае студент не заказывает курсовик/лабу, а задаёт вопросы, пытается разобраться. Молодец.
Возможно, мой ответ ему поможет. Либо решить задачу, либо правильно сформулировать вопросы.
...
Рейтинг: 0 / 0
Триггер с условиями
    #39938094
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
aleks222,

В данном случае студент не заказывает курсовик/лабу, а задаёт вопросы, пытается разобраться. Молодец.
Возможно, мой ответ ему поможет. Либо решить задачу, либо правильно сформулировать вопросы.

Ну ты оптимист.
У него НИГДЕ нету 120 в таблицах.
Но он хочет, чтобы 120 чудесным образом вставилось...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер с условиями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]