У меня есть вопрос об ограничениях в SQL, а точнее в transact-sql. У меня есть база данных для поездок. Я создал процедуру добавления нового участника поездки. Я использую сервер ms-sql, поэтому при создании таблиц были добавлены ограничения внешнего ключа и первичного ключа. Теперь в моей процедуре добавления нового участника для поездки у меня есть
insert VoyageThemes(VoyageId,ThemeId) values (@voyageId,@themeId)
Теперь в таблице VoyageThemes и VoyageId, и ThemeId являются первичными ключами и внешними ключами, поэтому, когда я пытаюсь добавить новые значения, которые не соответствуют уже существующим значениям в ограничении базы данных, поднимает голову.
У меня вопрос, могу ли я как-нибудь проверить, «ограничено» ли «ограничение», что я не могу добавить значения в таблицу, чтобы я мог остановить процедуру или мне нужно вручную проверить свою базу данных, если существуют VoyageId и ThemeId.
Мне нужно знать, существуют ли эти значения из-за этой строки кода:
update Voyages
set Voyages.Price=Voyages.Price+@costOfTheme*@numOfParticipants
Я обновляю стоимость поездки, поэтому эта строка кода может быть только точной, если есть соответствующие VoyageId и ThemeId