С# Вставка и редактирование SQL
На ms sql server. Есть 3 связанные таблицы - Students, Teachers, Diploma. В Diploma хранятся ID студентов и преподавателей и название темы дипломной работы. Из Windows формы вводится информация - имена и тема. Т.к. в таблице хранятся не ID а имена.. Напрямую сохранять не получается. Приходится узнавать ID по имени два раза, запоминать в переменные. Потом только записывать. Можно ли реализовать как-то одним запросом в SQL.
Ответы (2 шт):
Используйте хранимые процедуры передайте все значения и в ней добавьте 2, 3 сколько нужно записей в нужные таблицы
INSERT INTO diploma (student_id, teacher_id, diploma_subject)
SELECT student.id, teacher.id, 'The subject of diploma'
FROM student
CROSS JOIN teacher
WHERE student.name = 'Василий Пупкин'
AND teacher.name = 'Идиосинкразий Парамонович Зипер-Молниеносный';
Предполагается, что на student.name и teacher.name в структурах таблиц наложено ограничение уникальности. Иначе во WHERE должны использоваться (вместо или в дополнение к) условия отбора, однозначно идентифицирующие соответствующие персонажи.