zoukankan      html  css  js  c++  java
  • [sql server发布订阅]after触发器执行失败造成复制不成功

    结论:
    (以插入而例)

    • 发布端的数据插入成功
    • 订阅段的数据不会插入

    实验

    创建一张新表

    create table test_subscriber (id int, mark varchar(2),inserttime datetime)
    

    在订阅表上创建触发器

    CREATE TRIGGER [dbo].[sf_test]
       ON  [dbo].[t2]
       AFTER INSERT
    AS 
    BEGIN
        
        SET NOCOUNT ON;
    
        insert into test_subscriber
        select c1,c2,getdate() from inserted
    
    	
    END
    
    GO
    

    在发布端执行满足条件的插入

    如果C2的字段长度<=2,则触发器能够执行成功,那么两端的数据都能得到更新。

    insert into t2 values (5,'xx')
    

    订阅端(和发布端一致)

    1> select * from t2 where c1=5
    2> go
    c1          c2
    ----------- -----------------------
              5 xx
    
    (1 行受影响)
    
    1> select * from test_subscriber
    2> go
    id          mark inserttime
    ----------- ---- -----------------------
              5 xx   2015-07-06 22:39:37.227
    
    (1 行受影响)
    

    插入使触发器执行失败的数据

    insert into t2 values (6,'3xx')
    

    发布端

    1> use sql2008sbs
    2> select * from t2 where c1=6
    3> go
    已将数据库上下文更改为 'sql2008sbs'。
    c1          c2
    ----------- ----------------------------
              6 3xx
    
    (1 行受影响)
    

    订阅端

    
    1> select * from t2 where c1=6
    2> go
    c1          c2
    ----------- ------------------------
    
    (0 行受影响)
    

    记录表

    1> select * from test_subscriber where id=6
    2> go
    id          mark inserttime
    ----------- ---- -----------------------
    
    (0 行受影响)
    
  • 相关阅读:
    POJ 3009 Curling 2.0 简单DFS 好题
    POJ 3253 Fence Repair 贪心
    python_13 面向对象
    python_12 模块
    python练习题_04
    python_11 装饰器,闭包
    python练习题_03
    python_10 迭代器和生成器
    python_09 文件处理流程,文件操作方法
    python_08 函数式编程、高阶函数、map、filter、reduce函数、内置函数
  • 原文地址:https://www.cnblogs.com/shenfeng/p/sqlserver_subscribe_trigger_fail.html
Copyright © 2011-2022 走看看