мне нужна помощь с моим кодом ... Мне нужно вставить в две таблицыВставка внешнего ключа
DECLARE @IDENTITY INT
INSERT INTO BestallningMatratt (MatrattID, BestallningID, Antal)
VALUES ('1', '2', '3')
SELECT @IDENTITY = @@IDENTITY FROM BestallningMatratt
INSERT INTO Bestallning (BestallningID, BestallningDatum, Totalbelopp, Levererad, KundID)
VALUES (@IDENTITY, '28-02-2014', '250', '1', '1')
Я получаю ошибку, когда я запускаю мой код
Msg 547, Level 16 , Состояние 0, Строка 2
Оператор INSERT противоречил ограничению FOREIGN KEY «FK_BestallningMatratt_Bestallning». Конфликт произошел в базе данных «Tomasos», таблице «dbo.Bestallning», в столбце «BestallningID».Msg 544, Level 16, State 1, Line 4
Невозможно вставить явное значение для столбца идентификации в таблицу «Bestallning», если для параметра IDENTITY_INSERT установлено значение OFF.
А с чем именно вам нужна помощь? –
Не зная схему таблицы, это сложно сказать, но похоже, что вы пытаетесь вставить не в порядок. Сначала вам нужно добавить запись в «Bestallning», а затем вставить '@@ IDENTITY' в' BestallningMatratt.BestallningID'. –
Я бы рекомендовал использовать ** 'SCOPE_IDENTITY()' ** вместо всего остального, чтобы захватить вновь вставленное значение идентификации. [См. Это сообщение в блоге для объяснения относительно WHY] (http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity -of-record /) –