2014-08-27 35 views
-2

我是SQL Server和T-SQL的新手。我在同一个Microsoft SQL Server上有两个数据库(dbA和dbB)。这两个数据库具有完全相同字段的表,即dbA.dbo.fldA,dbA.dbo.fldB,dbA.dbo.fldC,dbB.dbo.fldA,dbB.dbo.fldB和dbB.dbo.fldC。无论何时在dbA中添加一条满足条件的新记录(例如,dbA.dbo.fldC <> 0),我想要一个触发器,它会自动将此记录添加到dbB中。但相反,如果在dbB中添加记录,则不应将其自动复制到dbA。MS SQL Server触发器在表中添加记录

这是我目前的触发器。但我不确定我应该如何激活它。

CREATE TRIGGER tradesToOps 
    ON dbInv.dbo.tblDatTradesToday 
    AFTER INSERT,DELETE,UPDATE 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    DECLARE @INSERT INT, @DELETE INT 

    SET @INSERT = (SELECT COUNT(*) FROM INSERTED) 
    SET @DELETE = (SELECT COUNT(*) FROM DELETED) 


    -- when Insert happens 
    IF @INSERT = 1 AND @DELETE = 0 
    BEGIN 

     INSERT INTO dbOps.dbo.tblDatTrades 
     SELECT * FROM INSERTED 

    END 

    -- Insert statements for trigger here 

END 

最佳,

马努

+1

到底是什么问题?你试过什么了? – SchmitzIT 2014-08-27 12:36:18

+1

从你的问题看来,你不明白触发器是如何工作的或者如何创建一个,或者是基于布尔谓词有条件地插入记录的T-SQL语句。您只需创建一个触发器即可执行上述操作(使用适当的T-SQL插入语句)。阅读关于触发器的MSDN,以及有关T-SQL插入语句和T-SQL If语句的信息。 – 2014-08-27 12:38:19

+0

请参阅http://msdn.microsoft.com/en-us/library/ms189799.aspx和http://msdn.microsoft.com/en-us/library/ms174335.aspx和http://msdn.microsoft。 com/en-us/library/ms182717.aspx – 2014-08-27 12:40:42

回答

-2

请创建触发器像下面

CREATE TRIGGER TestTrigger1 
    ON Person.Address 
    AFTER INSERT 
    AS 

    INSERT INTO Test 
     (col1) 
    VALUES 
     ('trigger fired'); 
+0

这完全没有回答这个问题,这是一个片段......如果是这样的话。 – SQLMason 2014-08-27 19:36:46