あるテーブルから別のテーブルにレコードを挿入するこの手順があります。宛先テーブルには、LeadId という ID 列があります
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
問題は、すべての LeadIds ではなく、最初に生成された LeadiD を取得していることです。Temp_ProductsTop テーブルの LeadiD 列には、この値のみがレコード数だけ繰り返されています。