我有两张桌子:
第一个是Requisitions
(父表):
RequisitionId int // primary key
RequisitionNumber varchar(20)
RequisitionBy varchar(100)
Remarks varchar(300)
ApprovedStatus varchar(20)
另一个是RequisitionDetails
(子表):
RequisitionDetailId int // primary key
RequisitionId int // foreign key ("Requisitions" table)
ProductId int
UnitConversionId int
Quantity decimal(18, 2)
现在我想使用单个存储过程在表中插入一行并在Requisitions
表中插入多行。RequisitionDetails
ROLLBACK
如果事务中有任何问题,存储过程应该包含命令。我需要帮助编写这个存储过程。
我创建了存储过程以在“申请”表中插入一行,并且我拥有插入行的 RequisitionId。现在使用这个 RequisitionId 如何为 RequisitionDetails 表插入多行?
这是存储过程。我需要扩展它:
CREATE PROCEDURE dbo.InsertRequisition
(
@RequisitionNumber varchar(20) = NULL,
@RequisitionBy varchar(100) = NULL,
@Remarks varchar(300) = NULL,
@ApprovedStatus varchar(20) = NULL
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @requisitionId INT;
INSERT INTO [Requisitions]
(
[RequisitionNumber],
[RequisitionBy],
[Remarks],
[ApprovedStatus]
)
VALUES
(
@RequisitionNumber,
@RequisitionBy,
@Remarks,
@ApprovedStatus
)
SET @requisitionId = SCOPE_IDENTITY();
END