我有一个将记录从一个表插入到另一个表的过程。目标表有一个名为 LeadId 的标识列
Create Procedure prcInsertPrd
As
Begin
Begin Transaction
Declare @Identity int
Insert into Temp_ProductsArchive (column1,column2,column3) select
(column1,column2,column3)
from Temp_Products
if(@@Error=0)
Begin
Commit
End
else
Begin
Rollback
End
End
然后我编写了一个插入触发器,它将从插入的表中获取 LeadId 并将其插入到另一个具有其他值的表中 -
Alter TRIGGER trgInsertTopProducts
ON Temp_ProductsArchive
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @LeadId as int
Select @LeadId=LeadId from inserted
print @LeadId
Insert into Temp_ProductsTop(column4,LeadID,Column5,column6) Select column4,@LeadID 'LeadID',column 5,column6 from Temp_Products
END
GO
问题是我得到的是第一个生成的 LeadiD,而不是所有的 LeadId。Temp_ProductsTop 表中的 LeadiD 列仅针对记录数重复此值