У меня есть процедура, которая устанавливает детали продукта, я ввожу детали в качестве параметров, как и сейчас, детали вводятся в две разные таблицы: таблицу "Продукты" и таблицу "Книга", я смог установить детали на месте , но я также хочу получить ProductID из таблицы Product в таблицу Book, где столбец также называется ProductId.
ALTER PROCEDURE [dbo].[ProductDetails]
@Name nvarchar(50),
@Deascription nvarchar(255),
@Image image,
@Price nvarchar(50),
@Val1 nvarchar(50),
@Val2 nvarchar(50),
@Val3 nvarchar(50)
AS
INSERT INTO Products
VALUES (@Name,@Deascription,@Image,@Price);
INSERT INTO Book(ISBN, Ammount, Auther)
VALUES (@Val1,@Val2,@Val3);
INSERT INTO Book(ProductID) //F_K referencing Products.ProductID
SELECT ProductID FROM Products
WHERE Products.ProductName=@Name AND Products.Deascription=@Deascription;
Эта процедура выполняется следующим образом.
exec ProductDetails book23, 'id should be=23', NULL, 23, 233, 23, bookers;
Теперь проблема в том, что идентификатор сдвигается на 1 строку вниз, когда он вставляется во вторую таблицу, отметьте Рис.
![Products Table](https://i.stack.imgur.com/tQCSe.png)
![it shifts down in 2nd table!](https://i.stack.imgur.com/5t1ek.png)