@ 数据库触发器 请求webapi模板


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sasomain_update]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[sasomain_update]
GO

create trigger sasomain_update
on [dbo].SO_SOMain 
after update
as
begin
   IF(UPDATE(iStatus))
   BEGIN
    declare @Code nvarchar(50)='',@iStatus int,@ErrorMsg nvarchar(max);
    DECLARE @url VARCHAR(256); -- 定义变量保存外部接口URL地址
	DECLARE @Object Int;
	DECLARE @Data NVARCHAR(MAX);
   DECLARE @Method NVARCHAR(10) = 'POST';
	DECLARE @response NVARCHAR(MAX);
    DECLARE @ResponseText   varchar(8000) =''  
	DECLARE @hr   varchar(800) ='' 
	
    --SET @url = 'xxxxxx'; -- 设置外部接口URL地址

	select @Code = cSOCode,@iStatus=iStatus from inserted

	if(@iStatus=1)
	begin
			IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = 'E' AND type = 'U')
			   PRINT 'Table does not exist'
			ELSE
			  PRINT 'Table exists'
			set @data= isnull('{"code":"'+@Code+'","ordertype":1}','');
			设置HTTP请求参数
			DECLARE @Headers NVARCHAR(4000) = '';
			DECLARE @Body NVARCHAR(MAX) = @Data;
			Exec sp_OACreate 'Msxml2.ServerXMLHTTP.3.0', @Object OUT;
			Exec sp_OAMethod @Object, 'open', NULL, 'POST',@url,'false'
			EXEC SP_OAMethod @object,'setRequestHeader',NULL,'Connection','Keep-Alive';
			EXEC SP_OAMethod @object,'setRequestHeader',NULL,'Keep-Alive','timeout=60000';
			EXEC sp_OAMethod @object,'setRequestHeader',NULL,'Content-Type','application/json'
			Exec sp_OAMethod @Object, 'send', NULL, @Data --发送数据   发送请求头
			EXEC @hr = sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
			Exec sp_OADestroy @Object
		  --处理HTTP响应结果(可根据需要自定义)
			PRINT @ResponseText;
	 END 
   END
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值