跨服务器写触发器

来源:互联网 发布:1t硬盘恢复数据多少钱 编辑:程序博客网 时间:2024/05/17 06:09
 create   trigger   t_test   on   test  
  for   insert,update,delete   
  as  
  set?   XACT_ABORT   on  
  --启动远程服务器的MSDTC服务  
  exec   master..xp_cmdshell   'isql   /S"xz"   /U"sa"   /P""   /q"exec   master..xp_cmdshell   ''net   start   msdtc'',no_output"',no_output  
   
  --启动本机的MSDTC服务  
  exec   master..xp_cmdshell   'net   start   msdtc',no_output  
   
  --进行分布事务处理,如果表用标识列做主键,用下面的方法  
  BEGIN   DISTRIBUTED   TRANSACTION  
  delete   from   openrowset('sqloledb','xz';'sa';'',test.dbo.test)   
  where   id   in(select   id   from   deleted)  
  insert   into   openrowset('sqloledb','xz';'sa';'',test.dbo.test)   
  select   *   from   inserted  
  commit   tran  
  go
原创粉丝点击