我想使用触发器将数据从表复制到另一个而不进行重复

我有两个表 在第一表中,它每时每刻都在添加行,具体取决于用户插入 在第二号表中,我要复制的每一行都已添加到表一中,但具有特定条件 还有第二号表还有一些其他列,我以后需要 我想通过触发器来做到这一点,但我不知道该怎么做

我已经尝试过存储过程,但不能自动进行

INSERT INTO ax.RetaILTRANSactIONSALESTRANS2
(
    [BARCODE],[CREATEDDATETIME],[Name],[ITEMID],[NetaMOUNTINCLTAX],[QTY],[STAFFID],[TERMINALID],[TRANSDATE],[PERIODICPERCENTAGEDISCOUNT],[ReceiptID]
)
SELECT ab.[BARCODE],ab.[CREATEDDATETIME],[ax].[ECORESPRODUCTTRANSLATION].[NAME],ab.[ITEMID],ab.[PRICE],ab.[QTY],ab.[STAFFID],ab.[TERMINALID],ab.[TRANSDATE],ab.[PERIODICPERCENTAGEDISCOUNT],ab.RECEIPTID
FROM ax.RetailTransactionSalesTrans ab
inner join [ax].[INVENTTABLE] on ab.[ITEMID] =[ax].[INVENTTABLE].[ITEMID]
inner join [ax].[ECORESPRODUCTTRANSLATION] on [ax].[INVENTTABLE].PRODUCT =[ax].[ECORESPRODUCTTRANSLATION].[PRODUCT]
LEFT JOIN ax.RetaILTRANSactIONSALESTRANS2 a ON 
a.[BARCODE] = ab.[BARCODE]
    AND a.[CREATEDDATETIME] = ab.[CREATEDDATETIME]
    AND a.[ITEMID] = ab.[ITEMID] 
    AND a.[NetaMOUNTINCLTAX] = ab.[PRICE]
    AND a.[QTY] = ab.[QTY] 
    AND a.[STAFFID] = ab.[STAFFID] 
    AND a.[TERMINALID] = ab.[TERMINALID] 
    AND a.[TRANSDATE] = ab.[TRANSDATE]
	AND a.[PERIODICPERCENTAGEDISCOUNT]=ab.[PERIODICPERCENTAGEDISCOUNT]
	and a.Process=null and a.Checked=null and a.[Select]=null
	where ab.[QTY]>0 and ab.[RECEIPTID]!='' and ab.[TRANSDATE] >= DATEADD(day,@daycount*-1,GetDate())
	and NOT EXISTS(select * from ax.RetaILTRANSactIONSALESTRANS2 where [CREATEDDATETIME] = ab.[CREATEDDATETIME])

我想将其转换为触发器,但是我不怎么做

注意:@daycount我从另一个表中获取它,但我通过程序将其传递了

kouder 回答:我想使用触发器将数据从表复制到另一个而不进行重复

您可以使用以下代码并编辑所需的列,其想法是已插入FROM ,您可以选择插入到主表中的所有行。

CREATE TRIGGER TRetailTransactionSalesTrans ON RetailTransactionSalesTrans
FOR INSERT
AS
BEGIN
    INSERT INTO RETAILTRANSACTIONSALESTRANS2
    SELECT [BARCODE],[CREATEDDATETIME],[Name],[ITEMID],[NETAMOUNTINCLTAX],[QTY],[STAFFID],[TERMINALID],[TRANSDATE],[PERIODICPERCENTAGEDISCOUNT],[ReceiptID]
    FROM Inserted;
END
本文链接:https://www.f2er.com/3119272.html

大家都在问