【问题标题】:MS SQL Server trigger to add records in a tableMS SQL Server 触发器在表中添加记录
【发布时间】:2014-08-27 12:33:34
【问题描述】:

我是 sql server 和 T-SQL 的新手。我在同一个 microsoft sql 服务器上有两个数据库(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 中。

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

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

最好的,

手动

【问题讨论】:

  • 到底是什么问题?到目前为止,您尝试过什么?
  • 从您的问题看来,您似乎不了解触发器的工作原理或如何创建触发器,或者不了解基于布尔谓词有条件地插入记录的 T-SQL 语句。您只需创建一个执行上述操作的触发器(使用适当的 T-SQL 插入语句)。在 MSDN 上阅读有关触发器以及 T-SQL 插入语句和 T-SQL If 语句的信息。
  • 我要问的主要问题是为什么? ...为什么视图不能?为什么需要跨数据复制?
  • 你根本不需要这样做,你可以从一个查询另一个。

标签: sql-server triggers


【解决方案1】:

请创建如下触发器

   CREATE TRIGGER TestTrigger1
    ON Person.Address
    AFTER INSERT
    AS

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

【讨论】:

  • 这根本不能回答问题,这是一个sn-p...如果那样的话。
猜你喜欢
  • 1970-01-01
  • 2022-09-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 2017-07-22
  • 2018-10-02
  • 2019-07-14
相关资源
最近更新 更多