结论:
(以插入而例)
- 发布端的数据插入成功
- 订阅段的数据不会插入
实验
创建一张新表
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 行受影响)