sqlserver监听表中某个字段变化事件调用web服务

问题:## 标题
sqlserver数据库中,监听订单表某个字段变化,调用web服务
思路:## 标题
触发器监听表中某个字段,调用存储过程通过web服务同步相应的数据。
如果数据库是sqlserver2005版本以上需要变更如下设置:

	sp_configure 'show advanced options', 1;
	GO
	RECONFIGURE;
	GO
	sp_configure 'Ole Automation Procedures', 1;
	GO
	RECONFIGURE;
	GO
	EXEC sp_configure 'Ole Automation Procedures';
	GO

触发器样例:## 标题

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER 触发器名称
   ON  表名
   AFTER UPDATE
AS
if UPDATE(chepaihao)
BEGIN
    declare @bianhao char (20),
	@chepaihao char (20);
   select @bianhao=Rtrim([bianhao]) 
		from baseinfo ;

    exec  存储过程名称 @bianhao
END

存储过程样例:## 标题

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE 存储过程
    @bianhao char (20)     
AS
BEGIN
declare @ServiceUrl as varchar(4000) 
set @ServiceUrl = '接口访问地址'
DECLARE @data varchar(4000);
--发送数据
set @data='{"params":[{"no": "'+CONVERT(VARCHAR, @bianhao)+'"}]}'                   
Declare @Object as Int
Declare @ResponseText AS  varchar(8000)   ;      
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'setRequestHeader', NULL, 'Content-Type','application/json;charset=UTF-8'
Exec sp_OAMethod @Object, 'send', NULL, @data --发送数据
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
EXEC sp_OAGetErrorInfo @Object --异常输出
Select  @ResponseText 
Exec sp_OADestroy @Object
END
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值