i get error of this code : create proc insertfactors_pf
(
    @FactorID int,
    @CustomersID int,
    @Number int,
    @TotalPrice decimal(18, 0),
    @PaidPrice decimal(18, 0),
    @Date Date,
    @ProductID int,
    @QTY int
   
)
AS

BEGIN TRANSACTION

SET IDENTITY_INSERT facetors on


INSERT INTO Factor VALUES (@FactorID, @CustomersID, @Number, @TotalPrice, @PaidPrice,@Date)
SET IDENTITY_INSERT factors off

IF @@ERROR <> 0
BEGIN 
    ROLLBACK
    RETURN
END

SET IDENTITY_INSERT Product_Factor on
INSERT INTO Produc_Factor values(@FactorID,@ProductID,@QTY)
SET IDENTITY_INSERT Product_Factor off


IF @@ERROR <> 0
BEGIN
    ROLLBACK
    RETURN
END

COMMIT
i write this code but error Msg 8101, Level 16, State 1, Procedure insertfactors_pf, Line 20 [Batch Start Line 0] An explicit value for the identity column in table 'Factor' can only be specified when a column list is used and IDENTITY_INSERT is ON.