Sqlserver 触发器的http请求

创建Insert触发器
USE [appsmart]
GO
/****** Object: Trigger [dbo].[notify_trigger] Script Date: 01/25/2017 09:31:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------创建触发器
ALTER TRIGGER [dbo].[notify_trigger] ON [dbo].[Table_Test]
AFTER INSERT
AS
BEGIN
DECLARE @userName NVARCHAR(20) --Insert触发器 下面为inserted相当于触发器的一个虚拟插入表
set @userName=(select inserted.userName from inserted)
EXEC testProPush @userName —调用存储过程并传参 如果传入的参数未变则不会触发
END

创建存储过程
USE [appsmart]
GO
/****** Object: StoredProcedure [dbo].[testPro] Script Date: 01/25/2017 09:18:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[testPro](
@userName varchar(50)
)
AS
BEGIN
declare @ServiceUrl as varchar(1000)
PRINT ‘http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken=’+@userName —触发触发时传过来的参数
set @ServiceUrl=‘http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken=’+@userName
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate’MSXML2.XMLHTTP’,@Object OUT;
Exec sp_OAMethod @Object, ‘open’,NULL,‘get’,@ServiceUrl,‘false’
Exec sp_OAMethod @Object,‘send’
Exec sp_OAMethod @Object,‘responseText’,@ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
END

相当于mysql来说sqlsever触发器调用http步骤相对比较简单

猜你喜欢

转载自blog.csdn.net/chengmin123456789/article/details/105628825