问题:## 标题 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

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。