Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 32

Дополнить триггер

28.05.2017, 14:45. Показов 1011. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой триггер
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  ON  [dbo].[Практика]
   FOR INSERT
   AS 
BEGIN
    SET NOCOUNT ON;
    INSERT INTO Договор_Практика (Вид_практики
    , Код_группы
    , Начало_Практики
    , Окончание_Практики
)
    SELECT inserted .Вид_практики, inserted .Код_Группы, inserted .Начало_Практики, inserted .Конец_Практики
FROM 
  inserted LEFT JOIN Договор_Практика ON 
  inserted.Вид_практики = Договор_Практика.Вид_практики AND inserted.Код_Группы=Договор_Практика.Код_группы AND inserted.Начало_Практики = Договор_Практика.Начало_Практики AND inserted.Конец_Практики = Договор_Практика.Окончание_Практики
WHERE
  Договор_Практика.Код_группы IS NULL OR Договор_Практика.Вид_практики IS NULL
В данный момент, при добавлении данных в таблицу Практика, эти данные сохраняются и в таблицу Договор_Практика (код_Группы, вид_практики ...).
Как сделать так, чтобы в таблицу Договор_Практика записался каждый студент, относящийся к группе? Таблицы не связывал
Миниатюры
Дополнить триггер   Дополнить триггер   Дополнить триггер  

0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2017, 14:45
Ответы с готовыми решениями:

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

Разработать триггер, запускаемый при занесении новой строки в таблицу. Триггер должен увеличивать счетчик ч
Разработать триггер, запускаемый при занесении новой строки в таблицу. Триггер должен увеличивать счетчик числа добавленных строк.

4
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.05.2017, 15:26
Цитата Сообщение от Yurec2407 Посмотреть сообщение
эти данные сохраняются и в таблицу Договор_Практика
зачем они там сохраняются без студентов?
А Если будут со студентами, то без студентов тоже оставить?
И зачем столько проверок в JOIN и WHERE, если логика должна быть проще: добавили запись в Практика, студенты добавились в Договор_Практика. Если что-то накосячили, вручную удаляем всех студентов и практику и повторяем танец с бубнами?
0
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 32
28.05.2017, 16:26  [ТС]
YuryK,
Цитата Сообщение от YuryK Посмотреть сообщение
зачем они там сохраняются без студентов?
потому что я не придумал как добавлять со студентами, приходится в ручную писать студенты группы и т.д. Триггер данный ещё не использую.
Цитата Сообщение от YuryK Посмотреть сообщение
И зачем столько проверок в JOIN и WHERE
Чтобы не дублировались данные. У группы может быть несколько видов практики, но у одно группы не может быть одна и та же практика 2 раза (так я думал, пока не написал это :-) ). Всё же у группы может быть несколько одинаковых видов практики.
И всё же, как тут студентов запихнуть?

Добавлено через 49 секунд
YuryK,
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.05.2017, 16:34
Лучший ответ Сообщение было отмечено Yurec2407 как решение

Решение

Цитата Сообщение от Yurec2407 Посмотреть сообщение
Всё же у группы может быть несколько одинаковых видов практики.
всякий раз как добавите практику, добавятся и студенты.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
INSERT INTO Договор_Практика (
     Вид_практики, Код_группы, Код_студента, Начало_Практики, Окончание_Практики
)
SELECT 
  inserted.Вид_практики, 
  inserted.Код_Группы, 
  Все_студенты.Код,
  inserted.Начало_Практики, 
  inserted.Конец_Практики
FROM 
  inserted 
  JOIN Все_студенты ON inserted.Код_группы = Все_студенты.Код_группы
1
0 / 0 / 0
Регистрация: 22.05.2017
Сообщений: 32
28.05.2017, 18:06  [ТС]
YuryK, спасибо, работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2017, 18:06
Помогаю со студенческими работами здесь

Дополнить функцию
есть такая функция FUNCTION . (@nomer varchar(50)) RETURNS varchar(15) BEGIN DECLARE @Summ bit SELECT @Summ = Заказы. ...

Как дополнить выборку
SELECT . as FROM as INNER JOIN as ON . = . Тут все понятно, но мне нужно чтобы в результате были + данные с условием...

Триггер, вызывающий процедуру, в которой выполняется select к этой таблице (откуда был вызван триггер)
есть тригерр create or replace trigger quickstart.quickstart.ACRIONS_COMMIT_TR after update on quickstart.actions for each...

Т-Триггер на ИЛИ-НЕ элементах и что это за триггер?
Здравствуйте. Нужно построить схему Т-Триггера через ИЛИ-НЕ элементы. Вот сам триггер ...

Взаимодействие коллайдеров (триггер и не триггер)
подскажите почему не срабатывает коллайдер с тригером на коллайдере без тригера? и как выйти из этой ситуации private void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru