2014-08-27 60 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