您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > SqlServer创建触发器在本地数据库执行添加之后远程服务器相应添加新数据
创建SqlServer触发器在本地数据库执行添加之后远程服务器相应添加新数据1、首先要保证本机数据库支持openrowset()语法如果本机不支持执行下面SQL语句EXECsp_configure'showadvancedoptions',1;GORECONFIGURE;GOEXECsp_configure'AdHocDistributedQueries',1GORECONFIGURE;GO可以执行测试语句select*fromopenrowset('SQLOLEDB','192.168.0.20';'sa';'123456',crm.dbo.TestMess)2、创建触发器本地数据库案例TestSmsTest服务器数据库案例TestMess创建本地服务器上createtriggerSmsInsertTestonTestSmsafterinsertasinsertintoTestselectinserted.UserName,inserted.Mobile,inserted.[Content],getdate()frominserted创建远程服务器上createtriggerSmsInsertonTestSmsafterinsertasinsertopenrowset('SQLOLEDB','192.168.0.20';'sa';'123456',crm.dbo.TestMess)selectinserted.ID,inserted.UserName,inserted.Mobile,inserted.[Content],getdate()frominserted远程服务器必须执行全部字段,所以远程服务器上的自增ID需要取消查询触发器select*fromsysobjectswherextype='TR'修改触发器altertriggerSmsInsertTestonTestSmsafterinsertasinsertintoTestselectinserted.UserName,inserted.Mobile,inserted.[Content]frominserted删除触发器droptriggerSmsInsertTest测试语句insertintoTestSms(UserName,Mobile,[Content])values('张三','15038176427','测试发送短信')3、执行报错异常处理(1)服务器'ZJW-PC\SQLEXPRESS'上的MSDTC不可用。(2)解决办法:1.在windows控制面版--管理工具--服务--DistributedTransactionCoordinator--属性--启动服务器和本机都需要执行此操作(3)该伙伴事务管理器已经禁止了它对远程/网络事务的支持。双方计算机启动MSDTC服务,方式为:命令行下service.msc,选择distributedlinktrackingclient,右键启动,并且,右键-属性-启动类型改为手动。对dtc进行手动设置,方式如下:控制面板-管理工具-在【组件服务】窗口中依次双击组件服务-计算机-我的电脑-distributedlinktrackingclient在本地dtc节点上右键-属性,勾选允许远程客户端、允许远程管理、允许入站、允许出站、不要求对方进行验证。并且应用设置。3以上操作是在win7下进行,针对不同的操作系统版本(win2000,win2008),可能会有不同的设置方式,但是,精神为:打开msdtc服务,并且设置本地dtc的指定配置。这些设置的设置方式请根据不同操作系统个版本进行查找。
本文标题:SqlServer创建触发器在本地数据库执行添加之后远程服务器相应添加新数据
链接地址:https://www.777doc.com/doc-2860232 .html