SQL Server 可更新订阅事务复制的trigger处理
2010-01-12 14:44
381 查看
1. 消除trigger的嵌套调用。最好不要用 EXEC sp_configure 'nested triggers', '0', 应该在trigger中使用判断语句, 例如:if not update (name) return。
2. 使用 not for replication 禁止在复制的时候触发trigger。
3. 创建publisher article的时候, 设置 copy user triggers为 true。
这样保证:trigger不会嵌套调用;复制不会触发trigger;而且publisher 和 subscriber上都会有触发器, 这样trigger的执行结果会实时得反映到当前节点并会复制到其他节点。
例:
CREATE TRIGGER [trg_testtable] on [dbo].[testtable]
for insert,update
not for replication
AS
if not update (name) return
update testtable set anum = dbo.fn_GetOrderString(name) WHERE id in (select id from inserted)
2. 使用 not for replication 禁止在复制的时候触发trigger。
3. 创建publisher article的时候, 设置 copy user triggers为 true。
这样保证:trigger不会嵌套调用;复制不会触发trigger;而且publisher 和 subscriber上都会有触发器, 这样trigger的执行结果会实时得反映到当前节点并会复制到其他节点。
例:
CREATE TRIGGER [trg_testtable] on [dbo].[testtable]
for insert,update
not for replication
AS
if not update (name) return
update testtable set anum = dbo.fn_GetOrderString(name) WHERE id in (select id from inserted)
相关文章推荐
- SQL Server 可更新订阅事务复制的identify列自动分配取值范围
- SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
- PowerShell应用之-可更新订阅的事务复制
- 可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效
- 可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效
- SQL Server 事务复制故障处理一例
- 可更新订阅的事务复制错误:列名 'msrepl_tran_version' 无效
- SQL Server 事务复制分发到订阅同步慢
- SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
- SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅!
- SQL SERVER复制订阅无法修改表的处理办法
- SQL SERVER复制拓扑结构中,订阅端宕机后的处理.....(一)
- SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅!
- Sql Server 具有可更新订阅的事务发布-业务升级
- SQL Server提高事务复制效率优化(三)订阅初始化优化
- SQL Server 事务复制分发到订阅同步慢
- SQL Server事务复制通过备份文件进行订阅初始化
- SQL SERVER复制拓扑结构中,订阅端宕机后的处理.....(二)
- SQL Server 事务复制故障处理一例
- Oracle笔记(七) 数据更新、事务处理、数据伪列