Вставить строки в связанные таблицы 1:1
Я хочу поместить новые строки в таблицы, связанные 1:1 в sql-server
,
Как видите, таблицы ссылаются друг на друга с одинаковым первичным ключом. И вот проблема - я знаю, что положить данные с двумя INSERT
звонки вызовут у меня ошибку, сказав, что я нарушаю ограничение PK. Есть ли способ сделать это в коде? Я хочу создать хранимую процедуру, используемую для добавления "первичных продуктов" (SUROWCE) и соответствующей ей записи в "акции" (STAN).
Моя попытка кода: INSERT INTO STAN VALUES(25, 5, 1000);
INSERT INTO SUROWCE VALUES(25, 'wood');
Msg 547, Level 16, State 0, Line 4
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_STAN_SUROWCE". The conflict occurred in database "TestBazyDanych", table "dbo.SUROWCE", column 'ID_SUROWCA'.
1 ответ
В отношении 1:1 только одна таблица имеет внешний ключ, ссылающийся на другую. Таким образом, вы вставляете в таблицу без внешнего ключа в первую очередь. Попробуйте просто поменять местами порядок вставок:
INSERT INTO SUROWCE VALUES(25, 'wood');
INSERT INTO STAN VALUES(25, 5, 1000);